本文整理汇总了Python中Shine.Configuration.ModelFile.ModelFile.diff方法的典型用法代码示例。如果您正苦于以下问题:Python ModelFile.diff方法的具体用法?Python ModelFile.diff怎么用?Python ModelFile.diff使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Shine.Configuration.ModelFile.ModelFile
的用法示例。
在下文中一共展示了ModelFile.diff方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testDiffMultipleElement
# 需要导入模块: from Shine.Configuration.ModelFile import ModelFile [as 别名]
# 或者: from Shine.Configuration.ModelFile.ModelFile import diff [as 别名]
def testDiffMultipleElement(self):
"""diff between 2 modelfiles with a MultipleElement"""
model = ModelFile()
model.add_element('name', check='string', multiple=True)
model2 = model.emptycopy()
# Empty models have no difference
added, changed, removed = model.diff(model2)
self.assertEqual(added.as_dict(), {})
self.assertEqual(removed.as_dict(), {})
self.assertEqual(changed.as_dict(), {})
# Same model have no difference
model.add('name', 'foo')
model2.add('name', 'foo')
added, changed, removed = model.diff(model2)
self.assertEqual(added.as_dict(), {})
self.assertEqual(removed.as_dict(), {})
self.assertEqual(changed.as_dict(), {})
# Add a value
model2.add('name', 'bar')
added, changed, removed = model.diff(model2)
self.assertEqual(added.as_dict(), {'name': ['bar']})
self.assertEqual(removed.as_dict(), {})
self.assertEqual(changed.as_dict(), {})
# Remove a value
del model2['name']
model.add('name', 'bar')
added, changed, removed = model.diff(model2)
self.assertEqual(added.as_dict(), {})
self.assertEqual(removed.as_dict(), {'name': ['foo', 'bar']})
self.assertEqual(changed.as_dict(), {})
示例2: testSaveModelToFile
# 需要导入模块: from Shine.Configuration.ModelFile import ModelFile [as 别名]
# 或者: from Shine.Configuration.ModelFile.ModelFile import diff [as 别名]
def testSaveModelToFile(self):
"""save a ModelFile to a file"""
testfile = makeTempFile("""foo: my test
bar: 3
foo: another
bar: 1
bar: 2""")
# Create a model
model = ModelFile()
model.add_element("foo", check="string", multiple=True)
model.add_element("bar", check="digit", multiple=True)
# Load a test file
model.load(testfile.name)
# Save it to a new file
filename = makeTempFilename()
model.save(filename, "# Some header")
# Reload the file in another model
model2 = model.emptycopy()
model2.load(filename)
os.unlink(filename)
# Compare the two files. They should have no difference
added, changed, removed = model.diff(model2)
self.assertTrue(len(changed) == len(added) == len(removed) == 0)
示例3: testDiffDictMultipleElement
# 需要导入模块: from Shine.Configuration.ModelFile import ModelFile [as 别名]
# 或者: from Shine.Configuration.ModelFile.ModelFile import diff [as 别名]
def testDiffDictMultipleElement(self):
"""diff between 2 modelfiles with a multiple subelement"""
model = ModelFile()
element = ModelFile(sep="=", linesep=" ")
element.add_element('dev', check='string')
element.add_element('index', check='digit')
model.add_custom('target', element, multiple=True)
model2 = model.emptycopy()
# Empty models have no difference
added, changed, removed = model.diff(model2)
self.assertEqual(added.as_dict(), {})
self.assertEqual(removed.as_dict(), {})
self.assertEqual(changed.as_dict(), {})
# Same model have no difference
model.parse('target: dev=/dev/sda index=1')
model2.parse('target: dev=/dev/sda index=1')
self.assertEqual(len(model['target']), 1)
self.assertEqual(len(model2['target']), 1)
added, changed, removed = model.diff(model2)
self.assertEqual(added.as_dict(), {})
self.assertEqual(removed.as_dict(), {})
self.assertEqual(changed.as_dict(), {})
# Add a new element
model2.parse('target: dev=/dev/sdb index=2')
self.assertEqual(len(model['target']), 1)
self.assertEqual(len(model2['target']), 2)
added, changed, removed = model.diff(model2)
self.assertEqual(added.as_dict(),
{'target': [{'index': 2, 'dev': '/dev/sdb'}]})
self.assertEqual(removed.as_dict(), {})
self.assertEqual(changed.as_dict(), {})
# Change an element
del model2['target']
model2.parse('target: dev=/dev/sdb index=1')
added, changed, removed = model.diff(model2)
self.assertEqual(added.as_dict(),
{'target': [{'index': 1, 'dev': '/dev/sdb'}]})
self.assertEqual(removed.as_dict(),
{'target': [{'index': 1, 'dev': '/dev/sda'}]})
self.assertEqual(changed.as_dict(), {})
示例4: testDiffSimpleElement
# 需要导入模块: from Shine.Configuration.ModelFile import ModelFile [as 别名]
# 或者: from Shine.Configuration.ModelFile.ModelFile import diff [as 别名]
def testDiffSimpleElement(self):
"""diff between 2 modelfiles with a SimpleElement"""
model = ModelFile()
model.add_element('name', check='string')
model2 = model.emptycopy()
# Empty models have no difference
added, changed, removed = model.diff(model2)
self.assertEqual(added.as_dict(), {})
self.assertEqual(removed.as_dict(), {})
self.assertEqual(changed.as_dict(), {})
# Same model have no difference
model.add('name', 'foo')
model2.add('name', 'foo')
added, changed, removed = model.diff(model2)
self.assertEqual(added.as_dict(), {})
self.assertEqual(removed.as_dict(), {})
self.assertEqual(changed.as_dict(), {})
# A value changed
del model2['name']
model2.add('name', 'bar')
added, changed, removed = model.diff(model2)
self.assertEqual(added.as_dict(), {})
self.assertEqual(removed.as_dict(), {})
self.assertEqual(changed.as_dict(), {'name': 'bar'})
# A value added
del model['name']
added, changed, removed = model.diff(model2)
self.assertEqual(added.as_dict(), {'name': 'bar'})
self.assertEqual(removed.as_dict(), {})
self.assertEqual(changed.as_dict(), {})
# A value removed
added, changed, removed = model2.diff(model)
self.assertEqual(added.as_dict(), {})
self.assertEqual(removed.as_dict(), {'name': 'bar'})
self.assertEqual(changed.as_dict(), {})
示例5: testDiffDictElement
# 需要导入模块: from Shine.Configuration.ModelFile import ModelFile [as 别名]
# 或者: from Shine.Configuration.ModelFile.ModelFile import diff [as 别名]
def testDiffDictElement(self):
"""diff between 2 modelfiles with a subelement"""
model = ModelFile()
element = ModelFile(sep="=", linesep=" ")
element.add_element('size', check='digit')
element.add_element('count', check='digit')
model.add_custom('stripe', element)
model2 = model.emptycopy()
# Empty models have no difference
added, changed, removed = model.diff(model2)
self.assertEqual(added.as_dict(), {})
self.assertEqual(removed.as_dict(), {})
self.assertEqual(changed.as_dict(), {})
# Same model have no difference
model.parse('stripe: count=1 size=1000000')
model2.parse('stripe: count=1 size=1000000')
added, changed, removed = model.diff(model2)
self.assertEqual(added.as_dict(), {})
self.assertEqual(removed.as_dict(), {})
self.assertEqual(changed.as_dict(), {})
# Remove an attribute
del model2.get('stripe')['count']
added, changed, removed = model.diff(model2)
self.assertEqual(added.as_dict(), {})
self.assertEqual(removed.as_dict(), {'stripe': {'count': 1}})
self.assertEqual(changed.as_dict(), {})
# Change an attribute
model2.get('stripe').add('count', 2)
added, changed, removed = model.diff(model2)
self.assertEqual(added.as_dict(), {})
self.assertEqual(removed.as_dict(), {})
self.assertEqual(changed.as_dict(), {'stripe': {'count': 2}})