def test_pressButtonJobStarted(self): # If the job has started, we display a notification saying so. code_import_id, branch_url = self.getNewCodeImportIDAndBranchURL() user_browser = self.getUserBrowser(branch_url) self.startJob(code_import_id) user_browser.getControl('Import Now').click() self.assertEqual( [u'The import is already running.'], get_feedback_messages(user_browser.contents))
def test_bug_alsoaffects_spn_exists(self): # If the source package name exists, there is no error. bug = self.factory.makeBug() spn = self.factory.makeSourcePackageName() browser = self.openBugPage(bug) browser.getLink(url='+distrotask').click() browser.getControl('Distribution').value = [self.distribution.name] browser.getControl('Source Package Name').value = spn.name browser.getControl('Continue').click() self.assertEqual([], get_feedback_messages(browser.contents))
def test_pressButtonJobDeleted(self): # If the import job has been deleled, for example because the code # import has been suspended, we display a notification saying this. code_import_id, branch_url = self.getNewCodeImportIDAndBranchURL() user_browser = self.getUserBrowser(branch_url) self.deleteJob(code_import_id) user_browser.getControl('Import Now').click() self.assertEqual( [u'This import is no longer being updated automatically.'], get_feedback_messages(user_browser.contents))
def test_pressButtonImportAlreadyRequested(self): # If the import has been requested by another user, we display a # notification saying who it was. code_import_id, branch_url = self.getNewCodeImportIDAndBranchURL() user_browser = self.getUserBrowser(branch_url) self.requestJobByUserWithDisplayName(code_import_id, "New User") user_browser.getControl('Import Now').click() self.assertEqual( [u'The import has already been requested by New User.'], get_feedback_messages(user_browser.contents))
def test_create_new_livefs_invalid_metadata(self): # The metadata field must contain valid JSON. browser = self.getViewBrowser(self.person, view_name="+new-livefs", user=self.person) browser.getControl("Name").value = "ubuntu-core" browser.getControl("Live filesystem build metadata").value = "{" browser.getControl("Create live filesystem").click() json_error = str(self.assertRaises(ValueError, json.loads, "{")) self.assertEqual(json_error, get_feedback_messages(browser.contents)[1])
def assertNotifications(self, ppa, notification, person=None): # Assert that while requesting a 'ppa' page as 'person', the # 'notification' appears. if person is not None: login_person(ppa.owner) principal = LaunchpadPrincipal(ppa.owner.account.id, ppa.owner.displayname, ppa.owner.displayname, ppa.owner) else: principal = None page = create_initialized_view(ppa, "+packages", principal=principal).render() notifications = get_feedback_messages(page) self.assertIn(notification, notifications)
def assertNotifications(self, ppa, notification, person=None): # Assert that while requesting a 'ppa' page as 'person', the # 'notification' appears. if person is not None: login_person(ppa.owner) principal = LaunchpadPrincipal( ppa.owner.account.id, ppa.owner.displayname, ppa.owner.displayname, ppa.owner) else: principal = None page = create_initialized_view( ppa, "+packages", principal=principal).render() notifications = get_feedback_messages(page) self.assertIn(notification, notifications)
def test_bug_alsoaffects_spn_not_exists_with_no_binaries(self): # When the distribution has no binary packages published, we can't. bug = self.factory.makeBug() browser = self.openBugPage(bug) browser.getLink(url='+distrotask').click() browser.getControl('Distribution').value = [self.distribution.name] browser.getControl('Source Package Name').value = 'does-not-exist' browser.getControl('Continue').click() expected = [ u'There is 1 error.', u'There is no package in %s named "does-not-exist". Launchpad ' 'does not track binary package names in %s.' % ( self.distribution.displayname, self.distribution.displayname)] self.assertEqual(expected, get_feedback_messages(browser.contents))
def test_bug_alsoaffects_spn_exists(self): # If a source package is published to a main archive with the given # name, there is no error. bug = self.factory.makeBug() distroseries = self.factory.makeDistroSeries( distribution=self.distribution) dsp1 = self.factory.makeDSPCache(distroseries=distroseries) with person_logged_in(bug.owner): bug.addTask(bug.owner, dsp1) dsp2 = self.factory.makeDSPCache(distroseries=distroseries) spn = dsp2.sourcepackagename browser = self.openBugPage(bug) browser.getLink(url='+distrotask').click() browser.getControl('Distribution').value = [self.distribution.name] browser.getControl('Source Package Name').value = spn.name browser.getControl('Continue').click() self.assertEqual([], get_feedback_messages(browser.contents))
def test_bug_alsoaffects_spn_exists_dsp_picker_feature_flag(self): # If the distribution source package for an spn is official, # there is no error. bug = self.factory.makeBug() distroseries = self.factory.makeDistroSeries( distribution=self.distribution) dsp1 = self.factory.makeDSPCache(distroseries=distroseries) with person_logged_in(bug.owner): bug.addTask(bug.owner, dsp1) dsp2 = self.factory.makeDSPCache(distroseries=distroseries, sourcepackagename='snarf') with FeatureFixture({u"disclosure.dsp_picker.enabled": u"on"}): browser = self.openBugPage(bug) browser.getLink(url='+distrotask').click() browser.getControl('Distribution').value = [self.distribution.name] browser.getControl('Source Package Name').value = dsp2.name browser.getControl('Continue').click() self.assertEqual([], get_feedback_messages(browser.contents))
def test_bug_alsoaffects_spn_not_exists_with_published_binaries(self): # When the distribution has published binaries, we search both # source and binary package names. bug = self.factory.makeBug() distroseries = self.factory.makeDistroSeries( distribution=self.distribution) das = self.factory.makeDistroArchSeries(distroseries=distroseries) self.factory.makeBinaryPackagePublishingHistory( distroarchseries=das, status=PackagePublishingStatus.PUBLISHED) self.assertTrue(self.distribution.has_published_binaries) browser = self.openBugPage(bug) browser.getLink(url='+distrotask').click() browser.getControl('Distribution').value = [self.distribution.name] browser.getControl('Source Package Name').value = 'does-not-exist' browser.getControl('Continue').click() expected = [ u'There is 1 error.', u'There is no package in %s named "does-not-exist".' % ( self.distribution.displayname)] self.assertEqual(expected, get_feedback_messages(browser.contents))