Completed
Pull Request — master (#118)
by Jasper
01:06
created

tests.DiffTests   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 46
Duplicated Lines 0 %
Metric Value
dl 0
loc 46
rs 10
wmc 8

7 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 2 1
A test_areEqual_false_for_missing_key() 0 8 1
A test_areEqual_true_for_same_provenance() 0 5 1
A test_areEqual_false_for_different_value() 0 5 1
A test_areEqual_ignores_id() 0 8 1
A test_assertEqual_throws_for_different_value() 0 6 2
A fileWithP() 0 4 1
1
import unittest, os
2
from mock import Mock, patch, call
3
from tests.ditest import DependencyInjectionTestBase
4
5
6
class DiffTests(DependencyInjectionTestBase):
7
8
    def setUp(self):
9
        super(DiffTests, self).setUp()
10
11
    def test_areEqual_true_for_same_provenance(self):
12
        from niprov.diff import Diff
13
        diff = Diff(self.fileWithP({'a':1,'b':2}), 
14
                    self.fileWithP({'a':1,'b':2}))
15
        self.assertTrue(diff.areEqual())
16
17
    def test_areEqual_false_for_missing_key(self):
18
        from niprov.diff import Diff
19
        diff = Diff(self.fileWithP({'a':1,'b':2,'c':3}), 
20
                    self.fileWithP({'a':1,'b':2}))
21
        self.assertFalse(diff.areEqual())
22
        diff = Diff(self.fileWithP({'a':1,'b':2}), 
23
                    self.fileWithP({'a':1,'b':2,'d':4}))
24
        self.assertFalse(diff.areEqual())
25
26
    def test_areEqual_false_for_different_value(self):
27
        from niprov.diff import Diff
28
        diff = Diff(self.fileWithP({'a':1}), 
29
                    self.fileWithP({'a':2}))
30
        self.assertFalse(diff.areEqual())
31
32
    def test_areEqual_ignores_id(self):
33
        from niprov.diff import Diff
34
        diff = Diff(self.fileWithP({'_id':1,'b':3}), 
35
                    self.fileWithP({'_id':2,'b':3}))
36
        self.assertTrue(diff.areEqual())
37
        diff = Diff(self.fileWithP({'_id':1,'b':3}), 
38
                    self.fileWithP({'b':3}))
39
        self.assertTrue(diff.areEqual())
40
41
    def test_assertEqual_throws_for_different_value(self):
42
        from niprov.diff import Diff
43
        diff = Diff(self.fileWithP({'a':1}), 
44
                    self.fileWithP({'a':2}))
45
        with self.assertRaises(AssertionError):
46
            diff.assertEqual()
47
48
    def fileWithP(self, provenance):
49
        mfile = Mock()
50
        mfile.getProvenance.return_value = provenance
51
        return mfile
52
53
54
55