7
7
from zope.security.proxy import removeSecurityProxy
9
9
from canonical.database.constants import UTC_NOW
10
from canonical.testing.layers import LaunchpadZopelessLayer
10
from canonical.launchpad.webapp.publisher import canonical_url
11
from canonical.testing.layers import (
12
LaunchpadFunctionalLayer,
13
LaunchpadZopelessLayer,
15
from lp.app.errors import NotFoundError
11
16
from lp.buildmaster.enums import BuildStatus
12
17
from lp.soyuz.interfaces.publishing import (
14
19
PackagePublishingStatus,
16
21
from lp.soyuz.tests.test_binarypackagebuild import BaseTestCaseWithThreeBuilds
22
from lp.testing import TestCaseWithFactory
19
25
class TestPublishingSet(BaseTestCaseWithThreeBuilds):
45
51
def test_getUnpublishedBuildsForSources_one_published(self):
46
52
# If we publish a binary for a build, it is no longer returned.
47
53
bpr = self.publisher.uploadBinaryForBuild(self.builds[0], 'gedit')
48
bpph = self.publisher.publishBinaryInArchive(
54
self.publisher.publishBinaryInArchive(
49
55
bpr, self.sources[0].archive,
50
56
status=PackagePublishingStatus.PUBLISHED)
86
92
self.assert_(urls[1].endswith('/96/firefox_666_source.changes'))
87
93
self.assert_(urls[2].endswith(
88
94
'/98/getting-things-gnome_666_source.changes'))
97
class TestSourcePackagePublishingHistory(TestCaseWithFactory):
99
layer = LaunchpadFunctionalLayer
101
def test_ancestry(self):
102
"""Ancestry can be traversed."""
103
ancestor = self.factory.makeSourcePackagePublishingHistory()
104
spph = self.factory.makeSourcePackagePublishingHistory(
106
self.assertEquals(spph.ancestor.displayname, ancestor.displayname)
108
def test_changelogUrl_missing(self):
109
spr = self.factory.makeSourcePackageRelease(changelog=None)
110
spph = self.factory.makeSourcePackagePublishingHistory(
111
sourcepackagerelease=spr)
112
self.assertEqual(None, spph.changelogUrl())
114
def test_changelogUrl(self):
115
spr = self.factory.makeSourcePackageRelease(
116
changelog=self.factory.makeChangelog('foo', ['1.0']))
117
spph = self.factory.makeSourcePackagePublishingHistory(
118
sourcepackagerelease=spr)
120
canonical_url(spph) + '/+files/%s' % spr.changelog.filename,
123
def test_getFileByName_changelog(self):
124
spr = self.factory.makeSourcePackageRelease(
125
changelog=self.factory.makeLibraryFileAlias(filename='changelog'))
126
spph = self.factory.makeSourcePackagePublishingHistory(
127
sourcepackagerelease=spr)
128
self.assertEqual(spr.changelog, spph.getFileByName('changelog'))
130
def test_getFileByName_changelog_absent(self):
131
spr = self.factory.makeSourcePackageRelease(changelog=None)
132
spph = self.factory.makeSourcePackagePublishingHistory(
133
sourcepackagerelease=spr)
134
self.assertRaises(NotFoundError, spph.getFileByName, 'changelog')
136
def test_getFileByName_unhandled_name(self):
137
spph = self.factory.makeSourcePackagePublishingHistory()
138
self.assertRaises(NotFoundError, spph.getFileByName, 'not-changelog')