Example #1
0
 def test_can_select_specific_keys_and_ignore_the_rest(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({'a':1,'b':2,'c':3}), 
                 self.fileWithP({'a':1,'b':9,'c':3,'d':4}))
     self.assertTrue(diff.areEqual(select=['a','c']))
     self.assertFalse(diff.areEqual(select=['b']))
     self.assertFalse(diff.areEqual(select=['d']))
Example #2
0
 def test_areEqual_false_for_missing_key(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({'a':1,'b':2,'c':3}), 
                 self.fileWithP({'a':1,'b':2}))
     self.assertFalse(diff.areEqual())
     diff = Diff(self.fileWithP({'a':1,'b':2}), 
                 self.fileWithP({'a':1,'b':2,'d':4}))
     self.assertFalse(diff.areEqual())
Example #3
0
 def test_can_ignore_key(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({'a':1}), 
                 self.fileWithP({'a':1,'b':3}))
     self.assertTrue(diff.areEqual(ignore=['b','c']))
     diff = Diff(self.fileWithP({'a':1,'b':3}), 
                 self.fileWithP({'a':2,'b':3}))
     self.assertTrue(diff.areEqual(ignore=['a','c']))
Example #4
0
 def test_areEqualProtocol_selects_on_BaseFile_getProtocolFields(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({'a':1,'x':7}, protocol=['x']), 
                 self.fileWithP({'a':2,'x':7}))
     self.assertTrue(diff.areEqualProtocol())
     diff = Diff(self.fileWithP({'a':1,'x':7}, protocol=['x']), 
                 self.fileWithP({'a':2,'x':8}))
     self.assertFalse(diff.areEqualProtocol())
Example #5
0
 def test_getSameString(self):
     from niprov.diff import Diff
     n = Diff.NCHARSCOL
     diff = Diff(self.fileWithP({'a': 1}), self.fileWithP({'a': 1, 'b': 3}))
     diffStr = diff.getSameString()
     line = ' '.ljust(n) + 'afilename'.ljust(n) + ' ' + 'afilename'.ljust(n)
     self.assertIn(line, diffStr)
     line = 'a'.ljust(n) + ' ' + str(1).ljust(n) + ' ' + str(1).ljust(n)
     self.assertIn(line, diffStr)
Example #6
0
 def test_areEqual_true_for_same_provenance(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({
         'a': 1,
         'b': 2
     }), self.fileWithP({
         'a': 1,
         'b': 2
     }))
     self.assertTrue(diff.areEqual())
Example #7
0
 def test_getSame(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({
         'a': 1,
         'b': 2
     }), self.fileWithP({
         'a': 1,
         'b': 3
     }))
     self.assertEqual(diff.getSame(), {'a': 'same'})
Example #8
0
 def test_getSameString(self):
     from niprov.diff import Diff
     n = Diff.NCHARSCOL
     diff = Diff(self.fileWithP({'a':1}), 
                 self.fileWithP({'a':1,'b':3}))
     diffStr = diff.getSameString()
     line = ' '.ljust(n)+'afilename'.ljust(n)+' '+'afilename'.ljust(n)
     self.assertIn(line, diffStr)
     line = 'a'.ljust(n)+' '+str(1).ljust(n)+' '+str(1).ljust(n)
     self.assertIn(line, diffStr)
Example #9
0
 def test_assertEqualProtocol_throws_if_not_areEqualProtocol(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({
         'a': 1,
         'x': 7
     }, protocol=['x']), self.fileWithP({
         'a': 2,
         'x': 8
     }))
     with self.assertRaises(AssertionError):
         diff.assertEqualProtocol()
Example #10
0
 def test_assertEqual_exception_message_is_getDifferenceString(self):
     from niprov.diff import Diff
     n = Diff.NCHARSCOL
     diff = Diff(self.fileWithP({'a': 1}), self.fileWithP({'a': 2, 'b': 2}))
     exception = None
     try:
         diff.assertEqual()
     except AssertionError as e:
         exception = e
     self.assertIsNotNone(exception, 'No AssertionError raised')
     self.assertEqual(diff.getDifferenceString(), str(e))
Example #11
0
 def test_assertEqual_exception_message_is_getDifferenceString(self):
     from niprov.diff import Diff
     n = Diff.NCHARSCOL
     diff = Diff(self.fileWithP({'a':1}), 
                 self.fileWithP({'a':2,'b':2}))
     exception = None
     try:
         diff.assertEqual()
     except AssertionError as e:
         exception = e
     self.assertIsNotNone(exception, 'No AssertionError raised')
     self.assertEqual(diff.getDifferenceString(), str(e))
Example #12
0
 def test_can_select_specific_keys_and_ignore_the_rest(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({
         'a': 1,
         'b': 2,
         'c': 3
     }), self.fileWithP({
         'a': 1,
         'b': 9,
         'c': 3,
         'd': 4
     }))
     self.assertTrue(diff.areEqual(select=['a', 'c']))
     self.assertFalse(diff.areEqual(select=['b']))
     self.assertFalse(diff.areEqual(select=['d']))
Example #13
0
 def test_areEqual_ignores_id_by_default(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({
         '_id': 1,
         'b': 3
     }), self.fileWithP({
         '_id': 2,
         'b': 3
     }))
     self.assertTrue(diff.areEqual())
     diff = Diff(self.fileWithP({
         '_id': 1,
         'b': 3
     }), self.fileWithP({'b': 3}))
     self.assertTrue(diff.areEqual())
     diff = Diff(self.fileWithP({
         '_id': 1,
         'b': 3
     }), self.fileWithP({'b': 3}))
     self.assertTrue(diff.areEqual(ignore=['d']))
Example #14
0
 def test_areEqual_ignores_id_by_default(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({'_id':1,'b':3}), 
                 self.fileWithP({'_id':2,'b':3}))
     self.assertTrue(diff.areEqual())
     diff = Diff(self.fileWithP({'_id':1,'b':3}), 
                 self.fileWithP({'b':3}))
     self.assertTrue(diff.areEqual())
     diff = Diff(self.fileWithP({'_id':1,'b':3}), 
                 self.fileWithP({'b':3}))
     self.assertTrue(diff.areEqual(ignore=['d']))
Example #15
0
 def test_can_ignore_key(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({'a': 1}), self.fileWithP({'a': 1, 'b': 3}))
     self.assertTrue(diff.areEqual(ignore=['b', 'c']))
     diff = Diff(self.fileWithP({
         'a': 1,
         'b': 3
     }), self.fileWithP({
         'a': 2,
         'b': 3
     }))
     self.assertTrue(diff.areEqual(ignore=['a', 'c']))
Example #16
0
def compare(file1, file2, dependencies=None):
    """Compare the provenance of two files.

    This creates a niprov :class:`.Diff` object that can be further 
    interrogated or displayed for differences between the two files.

    Example:
        Chain calls with methods of Diff or print the Diff object::

            compare(file1, file2).assertEqual(ignore='path')
            print(compare(file1, file2))

    Args:
        file1 (:class:`.BaseFile`): One of two niprov BaseFile objects to compare.
        file2 (:class:`.BaseFile`): As file1

    Returns:
        niprov.diff.Diff: A niprov :class:`.Diff` object which reflects
            differences between the two files.
    """
    return Diff(file1, file2)
Example #17
0
 def test_areEqualProtocol_selects_on_BaseFile_getProtocolFields(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({
         'a': 1,
         'x': 7
     }, protocol=['x']), self.fileWithP({
         'a': 2,
         'x': 7
     }))
     self.assertTrue(diff.areEqualProtocol())
     diff = Diff(self.fileWithP({
         'a': 1,
         'x': 7
     }, protocol=['x']), self.fileWithP({
         'a': 2,
         'x': 8
     }))
     self.assertFalse(diff.areEqualProtocol())
Example #18
0
 def test_areEqual_false_for_missing_key(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({
         'a': 1,
         'b': 2,
         'c': 3
     }), self.fileWithP({
         'a': 1,
         'b': 2
     }))
     self.assertFalse(diff.areEqual())
     diff = Diff(self.fileWithP({
         'a': 1,
         'b': 2
     }), self.fileWithP({
         'a': 1,
         'b': 2,
         'd': 4
     }))
     self.assertFalse(diff.areEqual())
Example #19
0
 def test_areEqual_true_for_same_provenance(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({'a':1,'b':2}), 
                 self.fileWithP({'a':1,'b':2}))
     self.assertTrue(diff.areEqual())
Example #20
0
 def test_Diff_to_string_is_(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({'a': 1}), self.fileWithP({'a': 2}))
     self.assertEqual(diff.getDifferenceString(), str(diff))
Example #21
0
 def test_assertEqualProtocol_throws_if_not_areEqualProtocol(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({'a':1,'x':7}, protocol=['x']), 
                 self.fileWithP({'a':2,'x':8}))
     with self.assertRaises(AssertionError):
         diff.assertEqualProtocol()
Example #22
0
 def test_assertEqual_throws_for_different_value(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({'a':1}), 
                 self.fileWithP({'a':2}))
     with self.assertRaises(AssertionError):
         diff.assertEqual()
Example #23
0
 def test_areEqual_false_for_different_value(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({'a': 1}), self.fileWithP({'a': 2}))
     self.assertFalse(diff.areEqual())
Example #24
0
 def test_assertEqual_throws_for_different_value(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({'a': 1}), self.fileWithP({'a': 2}))
     with self.assertRaises(AssertionError):
         diff.assertEqual()
Example #25
0
 def test_Diff_to_string_is_(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({'a':1}), 
                 self.fileWithP({'a':2}))
     self.assertEqual(diff.getDifferenceString(), str(diff))
Example #26
0
 def test_areEqual_false_for_different_value(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({'a':1}), 
                 self.fileWithP({'a':2}))
     self.assertFalse(diff.areEqual())
Example #27
0
 def test_getSame(self):
     from niprov.diff import Diff
     diff = Diff(self.fileWithP({'a':1,'b':2}), 
                 self.fileWithP({'a':1,'b':3}))
     self.assertEqual(diff.getSame(), {'a':'same'})