changeset 201:98eb3b8eea29

Fix report deletion broken in [209].
author cmlenz
date Wed, 14 Sep 2005 19:23:43 +0000
parents 692924ffed80
children ae4b03619d9a
files bitten/store.py bitten/tests/store.py
diffstat 2 files changed, 23 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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()
Copyright (C) 2012-2017 Edgewall Software