14
15
from lp.hardwaredb.interfaces.hwdb import HWBus, IHWDeviceSet
15
16
from canonical.launchpad.interfaces.launchpad import ILaunchpadCelebrities
16
17
from canonical.launchpad.searchbuilder import all, any
17
from canonical.testing import LaunchpadFunctionalLayer, LaunchpadZopelessLayer
18
from canonical.testing import (
19
DatabaseFunctionalLayer, LaunchpadFunctionalLayer, LaunchpadZopelessLayer)
21
from lp.bugs.interfaces.bugtarget import IBugTarget
19
22
from lp.bugs.interfaces.bugtask import (
20
23
BugTaskImportance, BugTaskSearchParams, BugTaskStatus)
21
24
from lp.bugs.model.bugtask import build_tag_search_clause
516
518
owners, bug supervisors, drivers
517
519
- bug tasks for the targets
519
super(TestBugTaskPermissionsToSetAssigneeBase, self).setUp()
521
super(TestBugTaskPermissionsToSetAssigneeMixin, self).setUp()
520
522
self.target_owner_member = self.factory.makePerson()
521
523
self.target_owner_team = self.factory.makeTeam(
522
524
owner=self.target_owner_member)
718
728
self.series = self.factory.makeDistroSeries(self.target)
731
class TestBugTaskSearch(TestCaseWithFactory):
733
layer = DatabaseFunctionalLayer
736
# Log in as an arbitrary person.
737
person = self.factory.makePerson()
739
self.addCleanup(logout)
742
def makeBugTarget(self):
743
"""Make an arbitrary bug target with no tasks on it."""
744
return IBugTarget(self.factory.makeProduct())
746
def test_no_tasks(self):
747
# A brand new bug target has no tasks.
748
target = self.makeBugTarget()
749
self.assertEqual([], list(target.searchTasks(None)))
751
def test_new_task_shows_up(self):
752
# When we create a new bugtask on the target, it shows up in
754
target = self.makeBugTarget()
756
task = self.factory.makeBugTask(target=target)
757
self.assertEqual([task], list(target.searchTasks(None)))
759
def test_modified_since_excludes_earlier_bugtasks(self):
760
# When we search for bug tasks that have been modified since a certain
761
# time, tasks for bugs that have not been modified since then are
763
target = self.makeBugTarget()
765
task = self.factory.makeBugTask(target=target)
766
date = task.bug.date_last_updated + timedelta(days=1)
767
result = target.searchTasks(None, modified_since=date)
768
self.assertEqual([], list(result))
770
def test_modified_since_includes_later_bugtasks(self):
771
# When we search for bug tasks that have been modified since a certain
772
# time, tasks for bugs that have been modified since then are
774
target = self.makeBugTarget()
776
task = self.factory.makeBugTask(target=target)
777
date = task.bug.date_last_updated - timedelta(days=1)
778
result = target.searchTasks(None, modified_since=date)
779
self.assertEqual([task], list(result))
781
def test_modified_since_includes_later_bugtasks_excludes_earlier(self):
782
# When we search for bugs that have been modified since a certain
783
# time, tasks for bugs that have been modified since then are
784
# included, tasks that have not are excluded.
785
target = self.makeBugTarget()
787
task1 = self.factory.makeBugTask(target=target)
788
date = task1.bug.date_last_updated
789
task1.bug.date_last_updated -= timedelta(days=1)
790
task2 = self.factory.makeBugTask(target=target)
791
task2.bug.date_last_updated += timedelta(days=1)
792
result = target.searchTasks(None, modified_since=date)
793
self.assertEqual([task2], list(result))
721
796
def test_suite():
722
797
suite = unittest.TestSuite()
723
suite.addTest(unittest.makeSuite(TestBugTaskDelta))
724
suite.addTest(unittest.makeSuite(TestBugTaskTagSearchClauses))
725
suite.addTest(unittest.makeSuite(TestBugTaskHardwareSearch))
726
suite.addTest(unittest.makeSuite(
727
TestProductBugTaskPermissionsToSetAssignee))
728
suite.addTest(unittest.makeSuite(
729
TestDistributionBugTaskPermissionsToSetAssignee))
798
suite.addTest(unittest.TestLoader().loadTestsFromName(__name__))
730
799
suite.addTest(DocTestSuite('lp.bugs.model.bugtask'))