@@ 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() |