# HG changeset patch # User cmlenz # Date 1126725823 0 # Node ID 98eb3b8eea291125e3d0328460605f914f2b9702 # Parent 692924ffed80ae5156ba92047cbf9b90eeea276f Fix report deletion broken in [209]. diff --git a/bitten/store.py b/bitten/store.py --- a/bitten/store.py +++ b/bitten/store.py @@ -185,13 +185,11 @@ if not self._lazyinit(create=False): return - container = self ._open_container() - if not container: - return ctxt = self.mgr.createUpdateContext() for elem in self.query('return $reports', config=config, build=build, step=step, type=type): - container.deleteDocument(self.xtn, elem._value.asDocument(), ctxt) + self.container.deleteDocument(self.xtn, elem._value.asDocument(), + ctxt) def store(self, build, step, xml): assert xml.name == 'report' and 'type' in xml.attr diff --git a/bitten/tests/store.py b/bitten/tests/store.py --- a/bitten/tests/store.py +++ b/bitten/tests/store.py @@ -77,6 +77,27 @@ self.assertEqual(2, len(list(self.store.retrieve(build)))) + def test_delete_reports_for_build(self): + """ + Verify that the reports for a build can be deleted. + """ + build = Mock(id=42, config='trunk') + step_foo = Mock(name='foo') + step_bar = Mock(name='bar') + xml = xmlio.Element('report', type='test')[xmlio.Element('dummy')] + self.store.store(build, step_foo, xml) + xml = xmlio.Element('report', type='lint')[xmlio.Element('dummy')] + self.store.store(build, step_bar, xml) + + other_build = Mock(id=66, config='trunk') + step_baz = Mock(name='foo') + xml = xmlio.Element('report', type='test')[xmlio.Element('dummy')] + self.store.store(other_build, step_baz, xml) + + self.store.delete(build=build) + self.assertEqual(0, len(list(self.store.retrieve(build)))) + self.assertEqual(1, len(list(self.store.retrieve(other_build)))) + def suite(): suite = unittest.TestSuite()