Code Duplication    Length = 9-9 lines in 3 locations

tests/test_MongoRepo.py 3 locations

@@ 177-185 (lines=9) @@
174
        with patch('niprov.mongo.bson') as bson:
175
            self.setupRepo()
176
            img = Mock()
177
            img.provenance = {'a':1}
178
            self.repo.add(img)
179
            assert not bson.Binary.called
180
            self.db.provenance.insert_one.assert_called_with({'a':1})
181
182
    def test_If_snapshotdata_hands_them_to_pictureCache_on_deserializing(self):
183
        img = Mock()
184
        self.fileFactory.fromProvenance.return_value = img
185
        self.setupRepo()
186
        self.db.provenance.find_one.return_value = {'a':3}
187
        out = self.repo.byLocation('/p/f1')
188
        assert not self.pictureCache.keep.called
@@ 167-175 (lines=9) @@
164
            img = Mock()
165
            img.provenance = {'a':1}
166
            self.repo.add(img)
167
            self.pictureCache.getBytes.assert_called_with(for_=img)
168
            bson.Binary.assert_called_with(sentinel.snapbytes)
169
            self.db.provenance.insert_one.assert_called_with({'a':1, 
170
                '_snapshot-data':sentinel.snapbson})
171
172
    def test_If_no_snapshot_doesnt_add_data_field(self):
173
        self.pictureCache.getBytes.return_value = None
174
        with patch('niprov.mongo.bson') as bson:
175
            self.setupRepo()
176
            img = Mock()
177
            img.provenance = {'a':1}
178
            self.repo.add(img)
@@ 84-92 (lines=9) @@
81
    def test_updateApproval(self):
82
        self.setupRepo()
83
        img = Mock()
84
        p = '/p/f1'
85
        newStatus = 'oh-oh'
86
        self.repo.updateApproval(p, newStatus)
87
        self.db.provenance.update.assert_called_with(
88
            {'location':p}, {'$set': {'approval': newStatus}})
89
90
    def test_latest(self):
91
        self.fileFactory.fromProvenance.side_effect = lambda p: 'img_'+p
92
        self.db.provenance.find.return_value = Mock()
93
        self.db.provenance.find.return_value.sort.return_value.limit.return_value = ['px','py']
94
        self.setupRepo()
95
        out = self.repo.latest()