Merge lp:~jml/pkgme/imports-and-tempdir into lp:pkgme

Proposed by Jonathan Lange
Status: Merged
Approved by: Jonathan Lange
Approved revision: 194
Merged at revision: 140
Proposed branch: lp:~jml/pkgme/imports-and-tempdir
Merge into: lp:pkgme
Prerequisite: lp:~jml/pkgme/api-rationalization
Diff against target: 1362 lines (+288/-324)
20 files modified
NEWS.txt (+11/-5)
pkgme/testing.py (+8/-9)
pkgme/tests/test_api.py (+6/-6)
pkgme/tests/test_backend.py (+45/-51)
pkgme/tests/test_debuild.py (+16/-28)
pkgme/tests/test_distutils_command.py (+11/-10)
pkgme/tests/test_info_elements.py (+2/-2)
pkgme/tests/test_main.py (+4/-4)
pkgme/tests/test_package_files.py (+13/-15)
pkgme/tests/test_project_info.py (+60/-66)
pkgme/tests/test_python_backend.py (+9/-10)
pkgme/tests/test_run_script.py (+1/-1)
pkgme/tests/test_script.py (+15/-24)
pkgme/tests/test_template_file.py (+1/-1)
pkgme/tests/test_testing.py (+1/-1)
pkgme/tests/test_trace.py (+9/-8)
pkgme/tests/test_upload.py (+1/-1)
pkgme/tests/test_vala_backend.py (+45/-53)
pkgme/tests/test_write.py (+29/-28)
versions.cfg (+1/-1)
To merge this branch: bzr merge lp:~jml/pkgme/imports-and-tempdir
Reviewer Review Type Date Requested Status
James Westby Approve
Review via email: mp+122551@code.launchpad.net

Commit message

Deprecate TempdirFixture. Use treeshape 0.2.1 instead.

Description of the change

Changes the tests to use treeshape rather than TempdirFixture. This cuts down on lines of code and allows us to delete stuff from pkgme.testing if we so choose, which in turn will simplify dependency touch points.

To post a comment you must log in.
Revision history for this message
James Westby (james-w) wrote :

Looks good.

Thanks,

James

review: Approve
lp:~jml/pkgme/imports-and-tempdir updated
194. By Jonathan Lange

Merge trunk, resolving conflicts.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'NEWS.txt'
--- NEWS.txt 2012-09-03 14:31:00 +0000
+++ NEWS.txt 2012-09-04 15:26:25 +0000
@@ -15,14 +15,20 @@
15 * New module ``pkgme.api`` that has the useful stuff from the pkgme script.15 * New module ``pkgme.api`` that has the useful stuff from the pkgme script.
16 (Jonathan Lange)16 (Jonathan Lange)
1717
18 * ``pkgme.bin.main.get_all_info`` is deprecated. Use18
19Deprecations
20------------
21
22 * ``pkgme.bin.main.get_all_info``. Use
19 ``packaging_info_as_data(get_all_info(...))`` instead. Both are in23 ``packaging_info_as_data(get_all_info(...))`` instead. Both are in
20 ``pkgme.api``. (Jonathan Lange)24 ``pkgme.api``. (Jonathan Lange)
2125
22 * ``pkgme.write_packaging`` is deprecated. Instead use26 * ``pkgme.write_packaging``. Instead use ``pkgme.api.get_all_info`` to get
23 ``pkgme.api.get_all_info`` to get packaging information, and27 packaging information, and ``pkgme.api.write_packaging_info`` to write it
24 ``pkgme.api.write_packaging_info`` to write it out to disk.28 out to disk. (Jonathan Lange)
25 (Jonathan Lange)29
30 * From ``pkgme.testing``, ``TempdirFixture``, ``FileFixture`` and
31 ``ExecutableFileFixture``. Use ``treeshape.FileTree`` instead.
2632
2733
280.3.1 (2012-08-28)340.3.1 (2012-08-28)
2935
=== modified file 'pkgme/testing.py'
--- pkgme/testing.py 2012-08-06 13:26:13 +0000
+++ pkgme/testing.py 2012-09-04 15:26:25 +0000
@@ -1,12 +1,13 @@
1from ConfigParser import ConfigParser1from ConfigParser import ConfigParser
2import os2import os
3import shutil
4from StringIO import StringIO3from StringIO import StringIO
5import tempfile
6import subprocess4import subprocess
75
8from debian import deb8226from debian import deb822
9from fixtures import Fixture7from fixtures import (
8 Fixture,
9 TempDir,
10 )
10from testtools.matchers import (11from testtools.matchers import (
11 Equals,12 Equals,
12 Matcher,13 Matcher,
@@ -22,12 +23,8 @@
22from pkgme.write import write_file23from pkgme.write import write_file
2324
2425
25class TempdirFixture(Fixture):26class TempdirFixture(TempDir):
2627 """DEPRECATED - Use ``treeshape.FileTree`` instead."""
27 def setUp(self):
28 Fixture.setUp(self)
29 self.path = tempfile.mkdtemp(prefix="pkgme-tests-")
30 self.addCleanup(shutil.rmtree, self.path)
3128
32 def abspath(self, relpath):29 def abspath(self, relpath):
33 return os.path.abspath(os.path.join(self.path, relpath))30 return os.path.abspath(os.path.join(self.path, relpath))
@@ -53,6 +50,7 @@
5350
5451
55class FileFixture(Fixture):52class FileFixture(Fixture):
53 """DEPRECATED - Use ``treeshape.FileTree`` instead."""
5654
57 def __init__(self, path, contents):55 def __init__(self, path, contents):
58 super(FileFixture, self).__init__()56 super(FileFixture, self).__init__()
@@ -67,6 +65,7 @@
6765
6866
69class ExecutableFileFixture(FileFixture):67class ExecutableFileFixture(FileFixture):
68 """DEPRECATED - Use ``treeshape.FileTree`` instead."""
7069
71 def setUp(self):70 def setUp(self):
72 FileFixture.setUp(self)71 FileFixture.setUp(self)
7372
=== modified file 'pkgme/tests/test_api.py'
--- pkgme/tests/test_api.py 2012-09-03 14:19:36 +0000
+++ pkgme/tests/test_api.py 2012-09-04 15:26:25 +0000
@@ -5,18 +5,18 @@
5from treeshape import HasFileTree5from treeshape import HasFileTree
66
7from .. import write_packaging7from .. import write_packaging
8from pkgme.api import write_packaging_info8from ..api import write_packaging_info
9from pkgme.backend import StaticBackend9from ..backend import StaticBackend
10from pkgme.info_elements import (10from ..info_elements import (
11 Architecture,11 Architecture,
12 Description,12 Description,
13 Maintainer,13 Maintainer,
14 PackageName,14 PackageName,
15 Version,15 Version,
16 )16 )
17from pkgme.package_files import Control, DEBIAN_DIR17from ..package_files import Control, DEBIAN_DIR
18from pkgme.project_info import DictInfo18from ..project_info import DictInfo
19from pkgme.testing import (19from ..testing import (
20 ControlSourceStanzaHasField,20 ControlSourceStanzaHasField,
21 StaticLoaderFixture,21 StaticLoaderFixture,
22 )22 )
2323
=== modified file 'pkgme/tests/test_backend.py'
--- pkgme/tests/test_backend.py 2012-08-31 09:23:08 +0000
+++ pkgme/tests/test_backend.py 2012-09-04 15:26:25 +0000
@@ -1,10 +1,14 @@
1import os1import os
2import sys2import sys
33
4from fixtures import TestWithFixtures4from fixtures import TempDir
5from testtools import TestCase5from testtools import TestCase
6from treeshape import (
7 FileTree,
8 from_rough_spec,
9 )
610
7from pkgme.backend import (11from ..backend import (
8 Backend,12 Backend,
9 BackendSelector,13 BackendSelector,
10 EXTERNAL_BACKEND_PATHS,14 EXTERNAL_BACKEND_PATHS,
@@ -19,17 +23,12 @@
19 StaticLoader,23 StaticLoader,
20 WantError,24 WantError,
21 )25 )
22from pkgme.project_info import (26from ..project_info import (
23 MultipleExternalHelpersInfo,27 MultipleExternalHelpersInfo,
24 SingleExternalHelperInfo,28 SingleExternalHelperInfo,
25 )29 )
26from pkgme.run_script import ScriptUserError30from ..run_script import ScriptUserError
27from pkgme.testing import (31from ..testing import StaticLoaderFixture
28 ExecutableFileFixture,
29 FileFixture,
30 StaticLoaderFixture,
31 TempdirFixture,
32 )
3332
3433
35class TestBackend(TestCase):34class TestBackend(TestCase):
@@ -40,18 +39,17 @@
40 self.assertEqual(backend.name, backend.describe())39 self.assertEqual(backend.name, backend.describe())
4140
4241
43class ExternalHelpersBackendTests(TestCase, TestWithFixtures):42class ExternalHelpersBackendTests(TestCase):
4443
45 def make_want_script(self, script, executable=True):44 def make_want_script(self, script, executable=True):
46 tempdir = self.useFixture(TempdirFixture())
47 script_name = ExternalHelpersBackend.WANT_SCRIPT_NAME
48 script_path = os.path.join(tempdir.path, script_name)
49 if executable:45 if executable:
50 cls = ExecutableFileFixture46 permissions = 0700
51 else:47 else:
52 cls = FileFixture48 permissions = 0600
53 self.useFixture(cls(script_path, script))49 script_name = ExternalHelpersBackend.WANT_SCRIPT_NAME
54 return tempdir50 return self.useFixture(
51 FileTree({script_name: {'content': script,
52 'permissions': permissions}}))
5553
56 def test_describe(self):54 def test_describe(self):
57 backend = ExternalHelpersBackend(55 backend = ExternalHelpersBackend(
@@ -145,13 +143,13 @@
145 self.assertEqual((10, None), backend.want(tempdir.path))143 self.assertEqual((10, None), backend.want(tempdir.path))
146144
147 def test_missing_want_script(self):145 def test_missing_want_script(self):
148 tempdir = self.useFixture(TempdirFixture())146 path = self.useFixture(TempDir()).path
149 name = self.getUniqueString()147 name = self.getUniqueString()
150 backend = ExternalHelpersBackend(name, tempdir.path)148 backend = ExternalHelpersBackend(name, path)
151 e = self.assertRaises(AssertionError, backend.want, tempdir.path)149 e = self.assertRaises(AssertionError, backend.want, path)
152 self.assertEqual(150 self.assertEqual(
153 "Backend %s (%s) has no '%s' script"151 "Backend %s (%s) has no '%s' script"
154 % (name, tempdir.path, ExternalHelpersBackend.WANT_SCRIPT_NAME),152 % (name, path, ExternalHelpersBackend.WANT_SCRIPT_NAME),
155 str(e))153 str(e))
156154
157 def test_want_script_not_executable(self):155 def test_want_script_not_executable(self):
@@ -219,18 +217,18 @@
219 str(e))217 str(e))
220218
221 def test_want_script_run_in_correct_dir(self):219 def test_want_script_run_in_correct_dir(self):
222 cwd_tempdir = self.useFixture(TempdirFixture())220 cwd_tempdir = self.useFixture(TempDir()).path
223 script = """#!%s221 script = """#!%s
224import os222import os
225if os.getcwd() != '%s':223if os.getcwd() != '%s':
226 print "Backend was called in %%s rather than %%s" %% (os.getcwd(), '%s')224 print "Backend was called in %%s rather than %%s" %% (os.getcwd(), '%s')
227else:225else:
228 print 10226 print 10
229""" % (sys.executable, cwd_tempdir.path, cwd_tempdir.path)227""" % (sys.executable, cwd_tempdir, cwd_tempdir)
230 backend_tempdir = self.make_want_script(script)228 backend_tempdir = self.make_want_script(script)
231 backend = ExternalHelpersBackend(229 backend = ExternalHelpersBackend(
232 self.getUniqueString(), backend_tempdir.path)230 self.getUniqueString(), backend_tempdir.path)
233 self.assertEqual((10, None), backend.want(cwd_tempdir.path))231 self.assertEqual((10, None), backend.want(cwd_tempdir))
234232
235 def test_get_info_with_multiple(self):233 def test_get_info_with_multiple(self):
236 helpers_path = self.getUniqueString()234 helpers_path = self.getUniqueString()
@@ -242,18 +240,18 @@
242 self.assertEqual(cwd_path, project_info.cwd)240 self.assertEqual(cwd_path, project_info.cwd)
243241
244 def test_get_info_with_single(self):242 def test_get_info_with_single(self):
245 helpers_tempdir = self.useFixture(TempdirFixture())243 helpers_tempdir = self.useFixture(TempDir()).path
246 info_script_path = os.path.join(244 info_script_path = os.path.join(
247 helpers_tempdir.path,245 helpers_tempdir,
248 SingleExternalHelperInfo.INFO_SCRIPT_NAME)246 SingleExternalHelperInfo.INFO_SCRIPT_NAME)
249 with open(info_script_path, "w"):247 with open(info_script_path, "w"):
250 pass248 pass
251 cwd_path = self.getUniqueString()249 cwd_path = self.getUniqueString()
252 backend = ExternalHelpersBackend(250 backend = ExternalHelpersBackend(
253 self.getUniqueString(), helpers_tempdir.path)251 self.getUniqueString(), helpers_tempdir)
254 project_info = backend.get_info(cwd_path)252 project_info = backend.get_info(cwd_path)
255 self.assertIsInstance(project_info, SingleExternalHelperInfo)253 self.assertIsInstance(project_info, SingleExternalHelperInfo)
256 self.assertEqual(helpers_tempdir.path, project_info.basepath)254 self.assertEqual(helpers_tempdir, project_info.basepath)
257 self.assertEqual(cwd_path, project_info.cwd)255 self.assertEqual(cwd_path, project_info.cwd)
258256
259257
@@ -415,42 +413,40 @@
415 selector.get_eligible_backends(path))413 selector.get_eligible_backends(path))
416414
417415
418class ExternalHelpersBackendLoaderTests(TestCase, TestWithFixtures):416class ExternalHelpersBackendLoaderTests(TestCase):
417
418 def make_tree(self, *args):
419 return self.useFixture(FileTree(from_rough_spec(args)))
419420
420 def test_loads_no_backends(self):421 def test_loads_no_backends(self):
421 tempdir = self.useFixture(TempdirFixture())422 loader = ExternalHelpersBackendLoader([])
422 loader = ExternalHelpersBackendLoader([tempdir.path])
423 self.assertEqual([], loader.load())423 self.assertEqual([], loader.load())
424424
425 def test_loads_from_one_dir(self):425 def test_loads_from_one_dir(self):
426 tempdir = self.useFixture(TempdirFixture())
427 backend_name = self.getUniqueString()426 backend_name = self.getUniqueString()
428 basepath = tempdir.mkdir(backend_name)427 tree = self.make_tree(backend_name + '/')
429 loader = ExternalHelpersBackendLoader([tempdir.path])428 loader = ExternalHelpersBackendLoader([tree.path])
430 backends = loader.load()429 backends = loader.load()
431 self.assertEqual(1, len(backends))430 self.assertEqual(1, len(backends))
432 self.assertIsInstance(backends[0], ExternalHelpersBackend)431 self.assertIsInstance(backends[0], ExternalHelpersBackend)
433 self.assertEqual(backend_name, backends[0].name)432 self.assertEqual(backend_name, backends[0].name)
434 self.assertEqual(basepath, backends[0].basepath)433 self.assertEqual(tree.join(backend_name), backends[0].basepath)
435434
436 def test_loads_from_two_dirs(self):435 def test_loads_from_two_dirs(self):
437 tempdir1 = self.useFixture(TempdirFixture())
438 tempdir2 = self.useFixture(TempdirFixture())
439 backend_name1 = self.getUniqueString()436 backend_name1 = self.getUniqueString()
440 backend_name2 = self.getUniqueString()437 backend_name2 = self.getUniqueString()
441 tempdir1.mkdir(backend_name1)438 tempdir1 = self.make_tree(backend_name1 + '/')
442 tempdir2.mkdir(backend_name2)439 tempdir2 = self.make_tree(backend_name2 + '/')
443 loader = ExternalHelpersBackendLoader(440 loader = ExternalHelpersBackendLoader(
444 [tempdir1.path, tempdir2.path])441 [tempdir1.path, tempdir2.path])
445 backends = loader.load()442 backends = loader.load()
446 self.assertEqual(2, len(backends))443 self.assertEqual(2, len(backends))
447444
448 def test_loads_only_one_instance_of_each_name(self):445 def test_loads_only_one_instance_of_each_name(self):
449 tempdir1 = self.useFixture(TempdirFixture())
450 tempdir2 = self.useFixture(TempdirFixture())
451 backend_name = self.getUniqueString()446 backend_name = self.getUniqueString()
452 basepath1 = tempdir1.mkdir(backend_name)447 tempdir1 = self.make_tree(backend_name + '/')
453 tempdir2.mkdir(backend_name)448 tempdir2 = self.make_tree(backend_name + '/')
449 basepath1 = tempdir1.join(backend_name)
454 loader = ExternalHelpersBackendLoader(450 loader = ExternalHelpersBackendLoader(
455 [tempdir1.path, tempdir2.path])451 [tempdir1.path, tempdir2.path])
456 backends = loader.load()452 backends = loader.load()
@@ -458,19 +454,17 @@
458 self.assertEqual(basepath1, backends[0].basepath)454 self.assertEqual(basepath1, backends[0].basepath)
459455
460 def test_loads_only_dirs(self):456 def test_loads_only_dirs(self):
461 tempdir = self.useFixture(TempdirFixture())457 path = self.make_tree(self.getUniqueString()).path
462 tempdir.touch(self.getUniqueString())458 loader = ExternalHelpersBackendLoader([path])
463 loader = ExternalHelpersBackendLoader([tempdir.path])
464 self.assertEqual([], loader.load())459 self.assertEqual([], loader.load())
465460
466 def test_ignores_dotdirs(self):461 def test_ignores_dotdirs(self):
467 tempdir = self.useFixture(TempdirFixture())462 dirname = '.%s/' % (self.getUniqueString(),)
468 tempdir.mkdir("." + self.getUniqueString())463 tempdir = self.make_tree(dirname).path
469 loader = ExternalHelpersBackendLoader([tempdir.path])464 loader = ExternalHelpersBackendLoader([tempdir])
470 self.assertEqual([], loader.load())465 self.assertEqual([], loader.load())
471466
472 def test_ignores_missing_dirs(self):467 def test_ignores_missing_dirs(self):
473 self.useFixture(TempdirFixture())
474 loader = ExternalHelpersBackendLoader([self.getUniqueString()])468 loader = ExternalHelpersBackendLoader([self.getUniqueString()])
475 self.assertEqual([], loader.load())469 self.assertEqual([], loader.load())
476470
477471
=== modified file 'pkgme/tests/test_debuild.py'
--- pkgme/tests/test_debuild.py 2012-08-06 18:21:44 +0000
+++ pkgme/tests/test_debuild.py 2012-09-04 15:26:25 +0000
@@ -2,37 +2,26 @@
2import tarfile2import tarfile
33
4from testtools import TestCase4from testtools import TestCase
5from treeshape import FileTree
56
6from pkgme.debuild import (7from ..debuild import (
7 _find_binary_files_in_dir,8 _find_binary_files_in_dir,
8 build_debian_source_include_binaries_content,9 build_debian_source_include_binaries_content,
9 build_orig_tar_gz,10 build_orig_tar_gz,
10 )11 )
11from pkgme.testing import (12
12 TempdirFixture,13
13 )14def DebianTempDirFixture():
1415 return FileTree(
1516 {'debian/icons/': {},
16class DebianTempDirFixture(TempdirFixture):17 'debian/source/': {}})
17 """A temp directory with a "testpkg" directory that contains
18 a skeleton dir debian/ structure
19 """
20
21 def setUp(self, with_binary_data=False):
22 super(DebianTempDirFixture, self).setUp()
23 self.pkgdir = self.abspath("testpkg")
24 self.icon_path = os.path.join(self.pkgdir, "debian", "icons")
25 self.debian_source_path = os.path.join(self.pkgdir, "debian", "source")
26 # setup fake env
27 os.makedirs(self.icon_path)
28 os.makedirs(self.debian_source_path)
2918
3019
31class BuildTarTestCase(TestCase):20class BuildTarTestCase(TestCase):
3221
33 def test_build_orig_tar_gz(self):22 def test_build_orig_tar_gz(self):
34 tempdir = self.useFixture(DebianTempDirFixture())23 tempdir = self.useFixture(DebianTempDirFixture())
35 changelog_path = os.path.join(tempdir.pkgdir, "debian", "changelog")24 changelog_path = tempdir.join("debian", "changelog")
36 with open(changelog_path, "w") as f:25 with open(changelog_path, "w") as f:
37 f.write("""26 f.write("""
38testpkg (0.1) unstable; urgency=low27testpkg (0.1) unstable; urgency=low
@@ -41,10 +30,10 @@
4130
42 -- Some Guy <foo@example.com> Thu, 19 Apr 2012 10:53:30 +020031 -- Some Guy <foo@example.com> Thu, 19 Apr 2012 10:53:30 +0200
43""")32""")
44 with open(os.path.join(tempdir.pkgdir, "canary"), "w") as f:33 with open(tempdir.join("canary"), "w") as f:
45 f.write("pieep")34 f.write("pieep")
46 # build it35 # build it
47 result_path = build_orig_tar_gz(tempdir.pkgdir)36 result_path = build_orig_tar_gz(tempdir.path)
48 # verify37 # verify
49 self.assertEqual(38 self.assertEqual(
50 "testpkg_0.1.orig.tar.gz", os.path.basename(result_path))39 "testpkg_0.1.orig.tar.gz", os.path.basename(result_path))
@@ -58,14 +47,14 @@
5847
59 def _make_icons(self, tempdir):48 def _make_icons(self, tempdir):
60 for icon_name in ["foo.png", "bar.png"]:49 for icon_name in ["foo.png", "bar.png"]:
61 with open(os.path.join(tempdir.icon_path, icon_name), "w") as f:50 icon_path = tempdir.join('debian', 'icons', icon_name)
51 with open(icon_path, "w") as f:
62 f.write("x\0x")52 f.write("x\0x")
6353
64 def test_find_binary_files(self):54 def test_find_binary_files(self):
65 tempdir = self.useFixture(DebianTempDirFixture())55 tempdir = self.useFixture(DebianTempDirFixture())
66 self._make_icons(tempdir)56 self._make_icons(tempdir)
67 bin_files = _find_binary_files_in_dir(os.path.join(57 bin_files = _find_binary_files_in_dir(tempdir.join('debian'))
68 tempdir.pkgdir, "debian"))
69 self.assertEqual(58 self.assertEqual(
70 sorted(["icons/foo.png", "icons/bar.png"]),59 sorted(["icons/foo.png", "icons/bar.png"]),
71 sorted(bin_files))60 sorted(bin_files))
@@ -73,11 +62,10 @@
73 def test_build_debian_source_include_binaries_content(self):62 def test_build_debian_source_include_binaries_content(self):
74 tempdir = self.useFixture(DebianTempDirFixture())63 tempdir = self.useFixture(DebianTempDirFixture())
75 self._make_icons(tempdir)64 self._make_icons(tempdir)
76 build_debian_source_include_binaries_content(tempdir.pkgdir)65 build_debian_source_include_binaries_content(tempdir.path)
77 expected_binaries = sorted(66 expected_binaries = sorted(
78 ['debian/icons/foo.png', 'debian/icons/bar.png'])67 ['debian/icons/foo.png', 'debian/icons/bar.png'])
79 include_binaries = os.path.join(68 include_binaries = tempdir.join('debian', 'source', "include-binaries")
80 tempdir.debian_source_path, "include-binaries")
81 with open(include_binaries) as f:69 with open(include_binaries) as f:
82 found_binaries = sorted(line.strip() for line in f.readlines())70 found_binaries = sorted(line.strip() for line in f.readlines())
83 self.assertEqual(expected_binaries, found_binaries)71 self.assertEqual(expected_binaries, found_binaries)
8472
=== modified file 'pkgme/tests/test_distutils_command.py'
--- pkgme/tests/test_distutils_command.py 2012-05-28 21:37:22 +0000
+++ pkgme/tests/test_distutils_command.py 2012-09-04 15:26:25 +0000
@@ -1,14 +1,15 @@
1from distutils.dist import Distribution1from distutils.dist import Distribution
2import json2import json
3import os
34
4from fixtures import TestWithFixtures5from fixtures import TempDir
5from testtools import TestCase6from testtools import TestCase
67
7from pkgme.distutils_command.pkgme_info import pkgme_info8from ..distutils_command.pkgme_info import pkgme_info
8from pkgme.testing import PathRequiredTestCase, TempdirFixture9from ..testing import PathRequiredTestCase
910
1011
11class pkgme_info_tests(TestCase, TestWithFixtures, PathRequiredTestCase):12class pkgme_info_tests(TestCase, PathRequiredTestCase):
1213
13 def test_interprets_pkgmeinfo(self):14 def test_interprets_pkgmeinfo(self):
14 dist = Distribution()15 dist = Distribution()
@@ -26,8 +27,8 @@
26 self.assertEqual([], cmd.pkgmeinfo)27 self.assertEqual([], cmd.pkgmeinfo)
2728
28 def test_provides_requested_information(self):29 def test_provides_requested_information(self):
29 tempdir = self.useFixture(TempdirFixture())30 tempdir = self.useFixture(TempDir()).path
30 out_path = tempdir.abspath('output')31 out_path = os.path.join(tempdir, 'output')
31 name = self.getUniqueString()32 name = self.getUniqueString()
32 dist = Distribution(dict(name=name))33 dist = Distribution(dict(name=name))
33 cmd = pkgme_info(dist)34 cmd = pkgme_info(dist)
@@ -41,8 +42,8 @@
41 self.assertEqual({"package_name": name}, output)42 self.assertEqual({"package_name": name}, output)
4243
43 def test_skips_unknown_info(self):44 def test_skips_unknown_info(self):
44 tempdir = self.useFixture(TempdirFixture())45 tempdir = self.useFixture(TempDir()).path
45 out_path = tempdir.abspath("output")46 out_path = os.path.join(tempdir, "output")
46 name = self.getUniqueString()47 name = self.getUniqueString()
47 dist = Distribution(dict(name=name))48 dist = Distribution(dict(name=name))
48 cmd = pkgme_info(dist)49 cmd = pkgme_info(dist)
4950
=== modified file 'pkgme/tests/test_info_elements.py'
--- pkgme/tests/test_info_elements.py 2012-08-21 15:13:44 +0000
+++ pkgme/tests/test_info_elements.py 2012-09-04 15:26:25 +0000
@@ -3,7 +3,7 @@
3from fixtures import EnvironmentVariableFixture3from fixtures import EnvironmentVariableFixture
4from testtools import TestCase4from testtools import TestCase
55
6from pkgme.info_elements import (6from ..info_elements import (
7 BuildDepends,7 BuildDepends,
8 debian_formatted_text,8 debian_formatted_text,
9 Description,9 Description,
@@ -16,7 +16,7 @@
16 MissingInfoError,16 MissingInfoError,
17 PackageName,17 PackageName,
18 )18 )
19from pkgme.project_info import DictInfo19from ..project_info import DictInfo
2020
2121
22class TestElement(InfoElement):22class TestElement(InfoElement):
2323
=== modified file 'pkgme/tests/test_main.py'
--- pkgme/tests/test_main.py 2012-08-31 10:28:27 +0000
+++ pkgme/tests/test_main.py 2012-09-04 15:26:25 +0000
@@ -1,12 +1,12 @@
1from testtools import TestCase1from testtools import TestCase
22
3from pkgme import __version__3from .. import __version__
4from pkgme.backend import (4from ..backend import (
5 EXTERNAL_BACKEND_PATHS,5 EXTERNAL_BACKEND_PATHS,
6 StaticBackend,6 StaticBackend,
7 )7 )
8from pkgme.bin.main import get_version_info8from ..bin.main import get_version_info
9from pkgme.testing import StaticLoaderFixture9from ..testing import StaticLoaderFixture
1010
1111
12class TestVersionInfo(TestCase):12class TestVersionInfo(TestCase):
1313
=== modified file 'pkgme/tests/test_package_files.py'
--- pkgme/tests/test_package_files.py 2012-08-21 15:26:20 +0000
+++ pkgme/tests/test_package_files.py 2012-09-04 15:26:25 +0000
@@ -5,8 +5,9 @@
5from debian import changelog5from debian import changelog
6from testtools import TestCase6from testtools import TestCase
7from testtools.matchers import StartsWith7from testtools.matchers import StartsWith
8from treeshape import FileTree
89
9from pkgme.info_elements import (10from ..info_elements import (
10 Architecture,11 Architecture,
11 ApplicationName,12 ApplicationName,
12 BuildDepends,13 BuildDepends,
@@ -32,7 +33,7 @@
32 Version,33 Version,
33 WorkingDirectory,34 WorkingDirectory,
34 )35 )
35from pkgme.package_files import (36from ..package_files import (
36 BasicFile,37 BasicFile,
37 Changelog,38 Changelog,
38 Compat,39 Compat,
@@ -46,14 +47,13 @@
46 Rules,47 Rules,
47 TemplatePackageFile,48 TemplatePackageFile,
48 )49 )
49from pkgme.project_info import DictInfo50from ..project_info import DictInfo
50from pkgme.testing import (51from ..testing import (
51 AreDesktopValuesFor,52 AreDesktopValuesFor,
52 ControlStanzaHasField,53 ControlStanzaHasField,
53 ControlStanzaDoesntHaveField,54 ControlStanzaDoesntHaveField,
54 ControlSourceStanzaHasField,55 ControlSourceStanzaHasField,
55 ControlSourceStanzaDoesntHaveField,56 ControlSourceStanzaDoesntHaveField,
56 TempdirFixture,
57 )57 )
5858
5959
@@ -610,21 +610,19 @@
610 self.assertEqual(True, foo.overwrite)610 self.assertEqual(True, foo.overwrite)
611611
612 def test_extra_files_from_paths(self):612 def test_extra_files_from_paths(self):
613 tempdir = self.useFixture(TempdirFixture())613 foo_content = self.getUniqueString()
614 filename1 = 'foo'614 tree = self.useFixture(
615 filename2 = 'bar'615 FileTree(
616 content1 = 'This is foo'616 {'foo': {'content': foo_content},
617 content2 = 'This is bar'617 'bar': {}}))
618 tempdir.create_file(filename1, content1)
619 tempdir.create_file(filename2, content2)
620 group = PackageFileGroup()618 group = PackageFileGroup()
621 project_info = DictInfo({619 project_info = DictInfo({
622 ExtraFilesFromPaths.name: {620 ExtraFilesFromPaths.name: {
623 'foo.txt': tempdir.abspath(filename1),621 'foo.txt': tree.join('foo'),
624 'debian/install': tempdir.abspath(filename2),622 'debian/install': tree.join('bar'),
625 }})623 }})
626 files = group.get_files(project_info)624 files = group.get_files(project_info)
627 [foo, install] = files625 [foo, install] = files
628 self.assertEqual('foo.txt', foo.path)626 self.assertEqual('foo.txt', foo.path)
629 self.assertEqual(content1, foo.get_contents())627 self.assertEqual(foo_content, foo.get_contents())
630 self.assertEqual(True, foo.overwrite)628 self.assertEqual(True, foo.overwrite)
631629
=== modified file 'pkgme/tests/test_project_info.py'
--- pkgme/tests/test_project_info.py 2011-10-31 18:15:27 +0000
+++ pkgme/tests/test_project_info.py 2012-09-04 15:26:25 +0000
@@ -1,24 +1,24 @@
1import json1import json
2import sys2import sys
33
4from fixtures import TestWithFixtures4from fixtures import TempDir
5from testtools import TestCase5from testtools import TestCase
6from treeshape import (
7 CONTENT,
8 FileTree,
9 PERMISSIONS,
10 )
611
7from pkgme.project_info import (12from ..project_info import (
8 DictInfo,13 DictInfo,
9 FallbackInfo,14 FallbackInfo,
10 MultipleExternalHelpersInfo,15 MultipleExternalHelpersInfo,
11 SingleExternalHelperInfo,16 SingleExternalHelperInfo,
12 )17 )
13from pkgme.run_script import (18from ..run_script import (
14 ScriptFailed,19 ScriptFailed,
15 ScriptPermissionDenied,20 ScriptPermissionDenied,
16 )21 )
17from pkgme.testing import (
18 ExecutableFileFixture,
19 FileFixture,
20 TempdirFixture,
21 )
2222
2323
24class DictInfoTests(TestCase):24class DictInfoTests(TestCase):
@@ -81,70 +81,70 @@
81 self.assertEqual({key: value1}, info.get_all([key]))81 self.assertEqual({key: value1}, info.get_all([key]))
8282
8383
84class MultipleExternalHelpersInfoTests(TestCase, TestWithFixtures):84class MultipleExternalHelpersInfoTests(TestCase):
85
86 def make_script(self, name, contents, permission=0700):
87 return self.useFixture(
88 FileTree({name: {CONTENT: contents,
89 PERMISSIONS: permission}})).path
8590
86 def test_missing_helper(self):91 def test_missing_helper(self):
87 tempdir = self.useFixture(TempdirFixture())92 tempdir = self.useFixture(TempDir()).path
88 info = MultipleExternalHelpersInfo(tempdir.path, tempdir.path)93 info = MultipleExternalHelpersInfo(tempdir, tempdir)
89 key = self.getUniqueString()94 key = self.getUniqueString()
90 self.assertEqual({key: None}, info.get_all([key]))95 self.assertEqual({key: None}, info.get_all([key]))
9196
92 def test_uses_output(self):97 def test_uses_output(self):
93 tempdir = self.useFixture(TempdirFixture())
94 script_name = self.getUniqueString()98 script_name = self.getUniqueString()
95 script_path = tempdir.abspath(script_name)
96 value = self.getUniqueString()99 value = self.getUniqueString()
97 script = "#!/bin/sh\necho %s\n" % value100 script = "#!/bin/sh\necho %s\n" % value
98 self.useFixture(ExecutableFileFixture(script_path, script))101 tempdir = self.make_script(script_name, script)
99 info = MultipleExternalHelpersInfo(tempdir.path, tempdir.path)102 info = MultipleExternalHelpersInfo(tempdir, tempdir)
100 self.assertEqual({script_name: value}, info.get_all([script_name]))103 self.assertEqual({script_name: value}, info.get_all([script_name]))
101104
102 def test_script_error(self):105 def test_script_error(self):
103 tempdir = self.useFixture(TempdirFixture())
104 script_name = self.getUniqueString()106 script_name = self.getUniqueString()
105 script_path = tempdir.abspath(script_name)
106 script = "#!/bin/sh\nexit 1\n"107 script = "#!/bin/sh\nexit 1\n"
107 self.useFixture(ExecutableFileFixture(script_path, script))108 tempdir = self.make_script(script_name, script)
108 info = MultipleExternalHelpersInfo(tempdir.path, tempdir.path)109 info = MultipleExternalHelpersInfo(tempdir, tempdir)
109 self.assertRaises(110 self.assertRaises(
110 ScriptFailed, info.get_all, [script_name])111 ScriptFailed, info.get_all, [script_name])
111112
112 def test_script_permission_denied(self):113 def test_script_permission_denied(self):
113 """Check the exception raised when the info script isn't executable."""114 """Check the exception raised when the info script isn't executable."""
114 tempdir = self.useFixture(TempdirFixture())
115 script_name = self.getUniqueString()115 script_name = self.getUniqueString()
116 script_path = tempdir.abspath(script_name)
117 script = "#!/bin/sh\nexit 0\n"116 script = "#!/bin/sh\nexit 0\n"
118 self.useFixture(FileFixture(script_path, script))117 tempdir = self.make_script(script_name, script, 0644)
119 info = MultipleExternalHelpersInfo(tempdir.path, tempdir.path)118 info = MultipleExternalHelpersInfo(tempdir, tempdir)
120 self.assertRaises(119 self.assertRaises(
121 ScriptPermissionDenied, info.get_all, [script_name])120 ScriptPermissionDenied, info.get_all, [script_name])
122121
123 def test_correct_working_directory(self):122 def test_correct_working_directory(self):
124 script_tempdir = self.useFixture(TempdirFixture())123 cwd_tempdir = self.useFixture(TempDir()).path
125 cwd_tempdir = self.useFixture(TempdirFixture())
126 script_name = self.getUniqueString()124 script_name = self.getUniqueString()
127 script_path = script_tempdir.abspath(script_name)
128 script = "#!%s\nimport os\nprint os.getcwd()\n" % sys.executable125 script = "#!%s\nimport os\nprint os.getcwd()\n" % sys.executable
129 self.useFixture(ExecutableFileFixture(script_path, script))126 script_tempdir = self.make_script(script_name, script)
130 info = MultipleExternalHelpersInfo(127 info = MultipleExternalHelpersInfo(script_tempdir, cwd_tempdir)
131 script_tempdir.path, cwd_tempdir.path)
132 self.assertEqual(128 self.assertEqual(
133 {script_name: cwd_tempdir.path}, info.get_all([script_name]))129 {script_name: cwd_tempdir}, info.get_all([script_name]))
134130
135131
136class SingleExternalHelperInfoTests(TestCase, TestWithFixtures):132class SingleExternalHelperInfoTests(TestCase):
133
134 def make_script(self, contents, permission=0700):
135 name = SingleExternalHelperInfo.INFO_SCRIPT_NAME
136 return self.useFixture(
137 FileTree({name: {CONTENT: contents,
138 PERMISSIONS: permission}}))
137139
138 def test_uses_output(self):140 def test_uses_output(self):
139 tempdir = self.useFixture(TempdirFixture())141 element_name = self.getUniqueString()
140 script_name = self.getUniqueString()
141 script_path = tempdir.abspath(SingleExternalHelperInfo.INFO_SCRIPT_NAME)
142 value = self.getUniqueString()142 value = self.getUniqueString()
143 script = '#!%s\nimport json\nprint json.dumps(%s)\n' % (143 script = '#!%s\nimport json\nprint json.dumps(%s)\n' % (
144 sys.executable, json.dumps({script_name: value}))144 sys.executable, json.dumps({element_name: value}))
145 self.useFixture(ExecutableFileFixture(script_path, script))145 tempdir = self.make_script(script).path
146 info = SingleExternalHelperInfo(tempdir.path, tempdir.path)146 info = SingleExternalHelperInfo(tempdir, tempdir)
147 self.assertEqual({script_name: value}, info.get_all([script_name]))147 self.assertEqual({element_name: value}, info.get_all([element_name]))
148148
149 def test_when_script_gives_invalid_json_output(self):149 def test_when_script_gives_invalid_json_output(self):
150 """Test when the script doesn't produce valid JSON.150 """Test when the script doesn't produce valid JSON.
@@ -152,48 +152,42 @@
152 As this is a problem with the backend we expect an AssertionError152 As this is a problem with the backend we expect an AssertionError
153 with an intelligible message.153 with an intelligible message.
154 """154 """
155 tempdir = self.useFixture(TempdirFixture())
156 script_path = tempdir.abspath(SingleExternalHelperInfo.INFO_SCRIPT_NAME)
157 value = self.getUniqueString()
158 script = '#!%s\nprint "}Nonsense"' % (sys.executable, )155 script = '#!%s\nprint "}Nonsense"' % (sys.executable, )
159 self.useFixture(ExecutableFileFixture(script_path, script))156 tempdir = self.make_script(script)
160 info = SingleExternalHelperInfo(tempdir.path, tempdir.path)157 info = SingleExternalHelperInfo(tempdir.path, tempdir.path)
161 e = self.assertRaises(AssertionError, info.get_all, [])158 e = self.assertRaises(AssertionError, info.get_all, [])
162 self.assertEquals("%s didn't return valid JSON: '}Nonsense\\n'"159 self.assertEquals(
163 % (script_path, ), str(e))160 "%s didn't return valid JSON: '}Nonsense\\n'" % (
161 tempdir.join(SingleExternalHelperInfo.INFO_SCRIPT_NAME),),
162 str(e))
164163
165 def test_passes_input(self):164 def test_passes_input(self):
166 tempdir = self.useFixture(TempdirFixture())165 element_name = self.getUniqueString()
167 script_name = self.getUniqueString()
168 script_path = tempdir.abspath(SingleExternalHelperInfo.INFO_SCRIPT_NAME)
169 value = self.getUniqueString()166 value = self.getUniqueString()
170 script = """#!%s167 script = """#!%(python)s
171import json168import json
172import sys169import sys
173170
174raw_input = sys.stdin.read()171raw_input = sys.stdin.read()
175input = json.loads(raw_input)172input = json.loads(raw_input)
176if input != ["%s"]:173if input != ["%(element)s"]:
177 print json.dumps({"%s": "Did not pass correct input: %%s" %% raw_input})174 print json.dumps({"%(element)s": "Did not pass correct input: %%s" %% raw_input})
178else:175else:
179 print json.dumps({"%s": "%s"})176 print json.dumps({"%(element)s": "%(value)s"})
180""" % (sys.executable, script_name, script_name, script_name, value)177""" % {'python': sys.executable, 'element': element_name, 'value': value}
181 self.useFixture(ExecutableFileFixture(script_path, script))178 tempdir = self.make_script(script).path
182 info = SingleExternalHelperInfo(tempdir.path, tempdir.path)179 info = SingleExternalHelperInfo(tempdir, tempdir)
183 self.assertEqual({script_name: value}, info.get_all([script_name]))180 self.assertEqual({element_name: value}, info.get_all([element_name]))
184181
185 def test_correct_working_directory(self):182 def test_correct_working_directory(self):
186 script_tempdir = self.useFixture(TempdirFixture())183 cwd_tempdir = self.useFixture(TempDir())
187 cwd_tempdir = self.useFixture(TempdirFixture())184 element_name = self.getUniqueString()
188 script_name = self.getUniqueString()
189 script_path = script_tempdir.abspath(SingleExternalHelperInfo.INFO_SCRIPT_NAME)
190 script = """#!%s185 script = """#!%s
191import os186import os
192import json187import json
193print json.dumps({"%s": os.getcwd()})188print json.dumps({"%s": os.getcwd()})
194""" % (sys.executable, script_name)189""" % (sys.executable, element_name)
195 self.useFixture(ExecutableFileFixture(script_path, script))190 script_tempdir = self.make_script(script).path
196 info = SingleExternalHelperInfo(191 info = SingleExternalHelperInfo(script_tempdir, cwd_tempdir.path)
197 script_tempdir.path, cwd_tempdir.path)
198 self.assertEqual(192 self.assertEqual(
199 {script_name: cwd_tempdir.path}, info.get_all([script_name]))193 {element_name: cwd_tempdir.path}, info.get_all([element_name]))
200194
=== modified file 'pkgme/tests/test_python_backend.py'
--- pkgme/tests/test_python_backend.py 2012-09-03 10:42:06 +0000
+++ pkgme/tests/test_python_backend.py 2012-09-04 15:26:25 +0000
@@ -1,33 +1,32 @@
1from fixtures import TestWithFixtures
2from testtools import TestCase1from testtools import TestCase
2from treeshape import FileTree
33
4from pkgme.backend import ExternalHelpersBackend, get_backend_dir4from ..backend import ExternalHelpersBackend, get_backend_dir
5from pkgme.testing import TempdirFixture
65
76
8backend_dir = get_backend_dir(__file__, 'python')7backend_dir = get_backend_dir(__file__, 'python')
98
109
11class PythonBackendTests(TestCase, TestWithFixtures):10class PythonBackendTests(TestCase):
1211
13 def test_want_with_setup_py(self):12 def test_want_with_setup_py(self):
14 tempdir = self.useFixture(TempdirFixture())13 tempdir = self.useFixture(FileTree({'setup.py': {}}))
15 tempdir.touch('setup.py')
16 backend = ExternalHelpersBackend("python", backend_dir)14 backend = ExternalHelpersBackend("python", backend_dir)
17 self.assertEqual((20, None), backend.want(tempdir.path))15 self.assertEqual((20, None), backend.want(tempdir.path))
1816
19 def test_want_without_setup_py(self):17 def test_want_without_setup_py(self):
20 tempdir = self.useFixture(TempdirFixture())18 tempdir = self.useFixture(FileTree({}))
21 backend = ExternalHelpersBackend("python", backend_dir)19 backend = ExternalHelpersBackend("python", backend_dir)
22 self.assertEqual(20 self.assertEqual(
23 (0, "Couldn't find a setup.py"), backend.want(tempdir.path))21 (0, "Couldn't find a setup.py"), backend.want(tempdir.path))
2422
25 def test_all_info(self):23 def test_all_info(self):
26 tempdir = self.useFixture(TempdirFixture())24 tempdir = self.useFixture(
27 tempdir.create_file('setup.py', """from distutils.core import setup25 FileTree({'setup.py': {'content': """\
26from distutils.core import setup
2827
29setup(name="foo")28setup(name="foo")
30""")29"""}}))
31 backend = ExternalHelpersBackend("python", backend_dir)30 backend = ExternalHelpersBackend("python", backend_dir)
32 info = backend.get_info(tempdir.path)31 info = backend.get_info(tempdir.path)
33 info = info.get_all(['package_name'])32 info = info.get_all(['package_name'])
3433
=== modified file 'pkgme/tests/test_run_script.py'
--- pkgme/tests/test_run_script.py 2012-08-22 13:37:48 +0000
+++ pkgme/tests/test_run_script.py 2012-09-04 15:26:25 +0000
@@ -2,7 +2,7 @@
22
3from testtools import TestCase3from testtools import TestCase
44
5from pkgme.run_script import (5from ..run_script import (
6 ScriptFailed,6 ScriptFailed,
7 ScriptUserError,7 ScriptUserError,
8 )8 )
99
=== modified file 'pkgme/tests/test_script.py'
--- pkgme/tests/test_script.py 2012-09-04 15:17:02 +0000
+++ pkgme/tests/test_script.py 2012-09-04 15:26:25 +0000
@@ -13,16 +13,13 @@
13 DirExists,13 DirExists,
14 Not,14 Not,
15 )15 )
16from treeshape import FileTree
1617
17from ..api import (18from ..api import (
18 get_all_info,19 get_all_info,
19 load_backends,20 load_backends,
20 packaging_info_as_data,21 packaging_info_as_data,
21 )22 )
22from ..backend import StaticBackend
23from ..info_elements import PackageName
24from ..project_info import DictInfo
25from ..testing import TempdirFixture
2623
2724
28class ScriptTests(TestCase):25class ScriptTests(TestCase):
@@ -54,23 +51,21 @@
54 self.assertEqual('', stderr.getvalue())51 self.assertEqual('', stderr.getvalue())
55 return stdout.getvalue()52 return stdout.getvalue()
5653
57 def create_marker_file(self, tempdir, prefix=None):54 def create_marker_file(self, prefix=None):
58 """Create the file that triggers the dummy backend for testing."""55 """Create the file that triggers the dummy backend for testing."""
59 path = "is_pkgme_test"56 path = "is_pkgme_test"
60 if prefix is not None:57 if prefix is not None:
61 path = os.path.join(prefix, path)58 path = os.path.join(prefix, path)
62 tempdir.create_file(path, "")59 return self.useFixture(FileTree({path: {}}))
6360
64 def test_writes_files(self):61 def test_writes_files(self):
65 tempdir = self.useFixture(TempdirFixture())62 tempdir = self.create_marker_file()
66 self.create_marker_file(tempdir)
67 self.run_script(tempdir.path)63 self.run_script(tempdir.path)
68 self.assertThat(tempdir.abspath("debian"), DirExists())64 self.assertThat(tempdir.join("debian"), DirExists())
6965
70 def test_builds_source_package(self):66 def test_builds_source_package(self):
71 tempdir = self.useFixture(TempdirFixture())67 tempdir = self.create_marker_file(prefix="foo")
72 self.create_marker_file(tempdir, prefix="foo")68 self.run_script(tempdir.join('foo'))
73 self.run_script(tempdir.abspath('foo'))
74 self.assertThat(tempdir.path, DirContains(69 self.assertThat(tempdir.path, DirContains(
75 ["foo_0.0.0.orig.tar.gz",70 ["foo_0.0.0.orig.tar.gz",
76 "foo_0.0.0.debian.tar.gz",71 "foo_0.0.0.debian.tar.gz",
@@ -81,31 +76,27 @@
81 ]))76 ]))
8277
83 def test_nobuild_doesnt_builds_source_package(self):78 def test_nobuild_doesnt_builds_source_package(self):
84 tempdir = self.useFixture(TempdirFixture())79 tempdir = self.create_marker_file(prefix="foo")
85 self.create_marker_file(tempdir, prefix="foo")80 self.run_script(tempdir.join('foo'), ['--nobuild'])
86 self.run_script(tempdir.abspath('foo'), ['--nobuild'])
87 self.assertThat(tempdir.path, DirContains(["foo"]))81 self.assertThat(tempdir.path, DirContains(["foo"]))
8882
89 def test_which_backends(self):83 def test_which_backends(self):
90 tempdir = self.useFixture(TempdirFixture())84 tempdir = self.create_marker_file()
91 self.create_marker_file(tempdir)
92 output = self.run_script(tempdir.path, ['--which-backends'])85 output = self.run_script(tempdir.path, ['--which-backends'])
93 self.assertEqual('dummy (100)\n', output)86 self.assertEqual('dummy (100)\n', output)
94 self.assertThat(tempdir.abspath("debian"), Not(DirExists()))87 self.assertThat(tempdir.join("debian"), Not(DirExists()))
9588
96 def test_dump(self):89 def test_dump(self):
97 tempdir = self.useFixture(TempdirFixture())90 tempdir = self.create_marker_file()
98 self.create_marker_file(tempdir)
99 all_info = get_all_info(tempdir.path, load_backends())91 all_info = get_all_info(tempdir.path, load_backends())
100 clean_info = packaging_info_as_data(all_info)92 clean_info = packaging_info_as_data(all_info)
101 output = self.run_script(tempdir.path, ['--dump'])93 output = self.run_script(tempdir.path, ['--dump'])
102 self.assertEqual(clean_info, json.loads(output))94 self.assertEqual(clean_info, json.loads(output))
103 self.assertThat(tempdir.abspath("debian"), Not(DirExists()))95 self.assertThat(tempdir.join("debian"), Not(DirExists()))
10496
105 def test_nosign(self):97 def test_nosign(self):
106 tempdir = self.useFixture(TempdirFixture())98 tempdir = self.create_marker_file(prefix='foo')
107 self.create_marker_file(tempdir, prefix='foo')99 self.run_script(tempdir.join('foo'), ['--nosign'])
108 self.run_script(tempdir.abspath('foo'), ['--nosign'])
109 changes_file = os.path.join(tempdir.path,100 changes_file = os.path.join(tempdir.path,
110 "foo_0.0.0_source.changes")101 "foo_0.0.0_source.changes")
111 signature = open(changes_file)102 signature = open(changes_file)
112103
=== modified file 'pkgme/tests/test_template_file.py'
--- pkgme/tests/test_template_file.py 2010-11-05 20:29:46 +0000
+++ pkgme/tests/test_template_file.py 2012-09-04 15:26:25 +0000
@@ -1,6 +1,6 @@
1from testtools import TestCase1from testtools import TestCase
22
3from pkgme.template_file import TemplateFile3from ..template_file import TemplateFile
44
55
6class TemplateFileTests(TestCase):6class TemplateFileTests(TestCase):
77
=== modified file 'pkgme/tests/test_testing.py'
--- pkgme/tests/test_testing.py 2012-08-06 13:26:01 +0000
+++ pkgme/tests/test_testing.py 2012-09-04 15:26:25 +0000
@@ -6,7 +6,7 @@
6 FileContains,6 FileContains,
7 )7 )
88
9from pkgme.testing import (9from ..testing import (
10 TempdirFixture,10 TempdirFixture,
11 )11 )
1212
1313
=== modified file 'pkgme/tests/test_trace.py'
--- pkgme/tests/test_trace.py 2012-01-19 12:18:32 +0000
+++ pkgme/tests/test_trace.py 2012-09-04 15:26:25 +0000
@@ -1,11 +1,14 @@
1import os1import os
22
3from fixtures import EnvironmentVariableFixture3from fixtures import (
4 EnvironmentVariableFixture,
5 TempDir,
6 TempHomeDir,
7 )
4from testtools import TestCase8from testtools import TestCase
5from testtools.matchers import MatchesRegex9from testtools.matchers import MatchesRegex
610
7from pkgme.testing import TempdirFixture11from .. import trace
8from pkgme import trace
912
1013
11_date_time_re = r'\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d,\d\d\d'14_date_time_re = r'\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d,\d\d\d'
@@ -13,9 +16,7 @@
13class TestLogging(TestCase):16class TestLogging(TestCase):
1417
15 def with_temp_home(self):18 def with_temp_home(self):
16 temp_dir = self.useFixture(TempdirFixture())19 return self.useFixture(TempHomeDir())
17 self.useFixture(EnvironmentVariableFixture('HOME', temp_dir.path))
18 return temp_dir
1920
20 def with_temp_log(self):21 def with_temp_log(self):
21 self.with_temp_home()22 self.with_temp_home()
@@ -31,8 +32,8 @@
3132
32 def test_log_location_from_env_var(self):33 def test_log_location_from_env_var(self):
33 # If PKGME_LOG_DIR is set in the environment we log there.34 # If PKGME_LOG_DIR is set in the environment we log there.
34 temp_home = self.with_temp_home()35 self.with_temp_home()
35 temp_dir = self.useFixture(TempdirFixture())36 temp_dir = self.useFixture(TempDir())
36 self.useFixture(EnvironmentVariableFixture('PKGME_LOG_DIR', temp_dir.path))37 self.useFixture(EnvironmentVariableFixture('PKGME_LOG_DIR', temp_dir.path))
37 log_location = trace.get_log_location()38 log_location = trace.get_log_location()
38 self.assertEqual(os.path.join(temp_dir.path, 'pkgme.log'), log_location)39 self.assertEqual(os.path.join(temp_dir.path, 'pkgme.log'), log_location)
3940
=== modified file 'pkgme/tests/test_upload.py'
--- pkgme/tests/test_upload.py 2011-08-01 18:11:44 +0000
+++ pkgme/tests/test_upload.py 2012-09-04 15:26:25 +0000
@@ -1,6 +1,6 @@
1from testtools import TestCase1from testtools import TestCase
22
3from pkgme.upload import (3from ..upload import (
4 CannotUpload,4 CannotUpload,
5 InvalidPPAName,5 InvalidPPAName,
6 NoSuchPerson,6 NoSuchPerson,
77
=== modified file 'pkgme/tests/test_vala_backend.py'
--- pkgme/tests/test_vala_backend.py 2012-04-27 14:45:31 +0000
+++ pkgme/tests/test_vala_backend.py 2012-09-04 15:26:25 +0000
@@ -18,116 +18,108 @@
18# Authors: Michael Terry <michael.terry@canonical.com>18# Authors: Michael Terry <michael.terry@canonical.com>
19# =====================================================================19# =====================================================================
2020
21import os21from fixtures import TempDir
22
23from fixtures import TestWithFixtures
24from testtools import TestCase22from testtools import TestCase
23from treeshape import FileTree, from_rough_spec
2524
26from pkgme.backend import ExternalHelpersBackend, get_backend_dir25from ..backend import ExternalHelpersBackend, get_backend_dir
27from pkgme.testing import CommandRequiredTestCase, TempdirFixture26from ..testing import CommandRequiredTestCase
2827
2928
30backend_dir = get_backend_dir(__file__, 'vala')29backend_dir = get_backend_dir(__file__, 'vala')
3130
3231
33class ValaBackendTests(TestCase, TestWithFixtures, CommandRequiredTestCase):32class ValaBackendTests(TestCase, CommandRequiredTestCase):
3433
35 def setUp(self):34 def make_tree(self, *spec):
36 super(ValaBackendTests, self).setUp()35 return self.useFixture(FileTree(from_rough_spec(spec)))
37 self.tempdir = self.useFixture(TempdirFixture())
3836
39 def get_backend(self):37 def get_backend(self):
40 return ExternalHelpersBackend("vala", backend_dir)38 return ExternalHelpersBackend("vala", backend_dir)
4139
42 def get_info(self):
43 backend = self.get_backend()
44 return backend.get_info(self.tempdir.path)
45
46 def test_want_zero_deep(self):40 def test_want_zero_deep(self):
47 self.tempdir.create_file("configure.ac", "")41 tempdir = self.make_tree('configure.ac', 'main.vala')
48 self.tempdir.create_file("main.vala", "")
49 backend = self.get_backend()42 backend = self.get_backend()
50 self.assertEqual((20, None), backend.want(self.tempdir.path))43 self.assertEqual((20, None), backend.want(tempdir.path))
5144
52 def test_want_one_deep(self):45 def test_want_one_deep(self):
53 self.tempdir.create_file("configure.ac", "")46 tempdir = self.make_tree("configure.ac", "one/main.vala")
54 self.tempdir.create_file(os.path.join("one", "main.vala"), "")
55 backend = self.get_backend()47 backend = self.get_backend()
56 self.assertEqual((20, None), backend.want(self.tempdir.path))48 self.assertEqual((20, None), backend.want(tempdir.path))
5749
58 def test_want_two_deep(self):50 def test_want_two_deep(self):
59 self.tempdir.create_file("configure.ac", "")51 tempdir = self.make_tree("configure.ac", "one/two/main.vala")
60 self.tempdir.create_file(
61 os.path.join("one", "two", "main.vala"), "")
62 backend = self.get_backend()52 backend = self.get_backend()
63 self.assertEqual((0, None), backend.want(self.tempdir.path))53 self.assertEqual((0, None), backend.want(tempdir.path))
6454
65 def test_want_without_configure_ac(self):55 def test_want_without_configure_ac(self):
66 self.tempdir.create_file("main.vala", "")56 tempdir = self.make_tree("main.vala")
67 backend = self.get_backend()57 backend = self.get_backend()
68 self.assertEqual((0, None), backend.want(self.tempdir.path))58 self.assertEqual((0, None), backend.want(tempdir.path))
6959
70 def test_want_with_configure_in(self):60 def test_want_with_configure_in(self):
71 self.tempdir.create_file("configure.in", "")61 tempdir = self.make_tree("main.vala", "configure.in")
72 self.tempdir.create_file("main.vala", "")
73 backend = self.get_backend()62 backend = self.get_backend()
74 self.assertEqual((20, None), backend.want(self.tempdir.path))63 self.assertEqual((20, None), backend.want(tempdir.path))
7564
76 def test_architecture(self):65 def test_architecture(self):
77 info = self.get_info()66 tempdir = self.useFixture(TempDir())
67 info = self.get_backend().get_info(tempdir.path)
78 self.assertEqual(68 self.assertEqual(
79 {"architecture": "any"}, info.get_all(["architecture"]))69 {"architecture": "any"}, info.get_all(["architecture"]))
8070
81 def test_buildsystem(self):71 def test_buildsystem(self):
82 info = self.get_info()72 tempdir = self.useFixture(TempDir())
73 info = self.get_backend().get_info(tempdir.path)
83 self.assertEqual(74 self.assertEqual(
84 {"buildsystem": "autoconf"}, info.get_all(["buildsystem"]))75 {"buildsystem": "autoconf"}, info.get_all(["buildsystem"]))
8576
86 def test_build_depends(self):77 def test_build_depends(self):
87 self.skipTestIfCommandNotExecutable('vala-dep-scanner')78 self.skipTestIfCommandNotExecutable('vala-dep-scanner')
88 self.tempdir.create_file("main.vala", "Gtk.Window win;")79 tempdir = self.make_tree(("main.vala", "Gtk.Window win;"))
89 info = self.get_info()80 info = self.get_backend().get_info(tempdir.path)
90 self.assertEqual(81 self.assertEqual(
91 {"build_depends": "libgtk3.0-dev, valac"},82 {"build_depends": "libgtk3.0-dev, valac"},
92 info.get_all(["build_depends"]))83 info.get_all(["build_depends"]))
9384
94 def test_depends(self):85 def test_depends(self):
95 info = self.get_info()86 tempdir = self.useFixture(TempDir())
87 info = self.get_backend().get_info(tempdir.path)
96 self.assertEqual(88 self.assertEqual(
97 {"depends": "${shlibs:Depends}"}, info.get_all(["depends"]))89 {"depends": "${shlibs:Depends}"}, info.get_all(["depends"]))
9890
99 def test_homepage(self):91 def test_homepage(self):
100 self.tempdir.create_file(92 tempdir = self.make_tree(
101 "configure.ac",93 ("configure.ac",
102 "AC_INIT([Example Project],[1.0],[http://bugs.example.com/],"94 "AC_INIT([Example Project],[1.0],[http://bugs.example.com/],"
103 "[example-project], [http://example.com/] )")95 "[example-project], [http://example.com/] )"))
104 info = self.get_info()96 info = self.get_backend().get_info(tempdir.path)
105 self.assertEqual(97 self.assertEqual(
106 {"homepage": "http://example.com/"}, info.get_all(["homepage"]))98 {"homepage": "http://example.com/"}, info.get_all(["homepage"]))
10799
108 def test_homepage_none(self):100 def test_homepage_none(self):
109 self.tempdir.create_file(101 tempdir = self.make_tree(
110 "configure.ac",102 ("configure.ac",
111 "AC_INIT([Example Project],[1.0],[http://bugs.example.com/],"103 "AC_INIT([Example Project],[1.0],[http://bugs.example.com/],"
112 "[example-project])")104 "[example-project])"))
113 info = self.get_info()105 info = self.get_backend().get_info(tempdir.path)
114 self.assertEqual(106 self.assertEqual(
115 {"homepage": ""}, info.get_all(["homepage"]))107 {"homepage": ""}, info.get_all(["homepage"]))
116108
117 def test_package_name(self):109 def test_package_name(self):
118 self.tempdir.create_file(110 tempdir = self.make_tree(
119 "configure.ac",111 ("configure.ac",
120 "AC_INIT([GNU Example Project],[1.0],[http://bugs.example.com/],"112 "AC_INIT([GNU Example Project],[1.0],[http://bugs.example.com/],"
121 "[co ol-proj],[http://example.com/])")113 "[co ol-proj],[http://example.com/])"))
122 info = self.get_info()114 info = self.get_backend().get_info(tempdir.path)
123 self.assertEqual(115 self.assertEqual(
124 {"package_name": "co ol-proj"}, info.get_all(["package_name"]))116 {"package_name": "co ol-proj"}, info.get_all(["package_name"]))
125117
126 def test_package_name_none(self):118 def test_package_name_none(self):
127 self.tempdir.create_file(119 tempdir = self.make_tree(
128 "configure.ac",120 ("configure.ac",
129 "AC_INIT( [GNU Example Project] , [1.0],"121 "AC_INIT( [GNU Example Project] , [1.0],"
130 "[http://bugs.example.com/])")122 "[http://bugs.example.com/])"))
131 info = self.get_info()123 info = self.get_backend().get_info(tempdir.path)
132 self.assertEqual(124 self.assertEqual(
133 {"package_name": "example-project"}, info.get_all(["package_name"]))125 {"package_name": "example-project"}, info.get_all(["package_name"]))
134126
=== modified file 'pkgme/tests/test_write.py'
--- pkgme/tests/test_write.py 2012-08-06 13:26:01 +0000
+++ pkgme/tests/test_write.py 2012-09-04 15:26:25 +0000
@@ -1,6 +1,6 @@
1import os1import os
22
3from fixtures import TestWithFixtures3from fixtures import TempDir
4from testtools import TestCase4from testtools import TestCase
5from testtools.matchers import (5from testtools.matchers import (
6 DirExists,6 DirExists,
@@ -8,16 +8,17 @@
8 PathExists,8 PathExists,
9 )9 )
1010
11from pkgme.package_files import PackageFile11from ..package_files import PackageFile
12from pkgme.testing import (12from ..write import (
13 TempdirFixture,
14 )
15from pkgme.write import (
16 write_file,13 write_file,
17 Writer,14 Writer,
18 )15 )
1916
2017
18def abspath(fixture, *segments):
19 return os.path.join(fixture.path, *segments)
20
21
21class SimplePackageFile(PackageFile):22class SimplePackageFile(PackageFile):
2223
23 def __init__(self, path, contents="", overwrite=True):24 def __init__(self, path, contents="", overwrite=True):
@@ -29,80 +30,80 @@
29 return self.contents30 return self.contents
3031
3132
32class WriterTests(TestCase, TestWithFixtures):33class WriterTests(TestCase):
3334
34 def get_writer(self):35 def get_writer(self):
35 return Writer()36 return Writer()
3637
37 def do_write(self, tempdir=None):38 def do_write(self, tempdir=None):
38 if tempdir is None:39 if tempdir is None:
39 tempdir = self.useFixture(TempdirFixture())40 tempdir = self.useFixture(TempDir())
40 writer = self.get_writer()41 writer = self.get_writer()
41 writer.write(tempdir.path)42 writer.write(tempdir.path)
42 return tempdir43 return tempdir
4344
44 def test_write_creates_target_dir(self):45 def test_write_creates_target_dir(self):
45 writer = self.get_writer()46 writer = self.get_writer()
46 tempdir = self.useFixture(TempdirFixture())47 tempdir = self.useFixture(TempDir())
47 target_dir = tempdir.abspath(self.getUniqueString())48 target_dir = abspath(tempdir, self.getUniqueString())
48 writer.write(49 writer.write(
49 [SimplePackageFile(self.getUniqueString())], target_dir)50 [SimplePackageFile(self.getUniqueString())], target_dir)
50 self.assertThat(target_dir, DirExists())51 self.assertThat(target_dir, DirExists())
5152
52 def test_write_creates_needed_subdirs(self):53 def test_write_creates_needed_subdirs(self):
53 writer = self.get_writer()54 writer = self.get_writer()
54 tempdir = self.useFixture(TempdirFixture())55 tempdir = self.useFixture(TempDir())
55 subdir = self.getUniqueString()56 subdir = self.getUniqueString()
56 package_file = SimplePackageFile(57 package_file = SimplePackageFile(
57 os.path.join(subdir, self.getUniqueString()))58 os.path.join(subdir, self.getUniqueString()))
58 writer.write([package_file], tempdir.path)59 writer.write([package_file], tempdir.path)
59 self.assertThat(tempdir.abspath(subdir), DirExists())60 self.assertThat(abspath(tempdir, subdir), DirExists())
6061
61 def test_write_accepts_existing_subdir(self):62 def test_write_accepts_existing_subdir(self):
62 writer = self.get_writer()63 writer = self.get_writer()
63 tempdir = self.useFixture(TempdirFixture())64 tempdir = self.useFixture(TempDir())
64 subdir = self.getUniqueString()65 subdir = self.getUniqueString()
65 package_file = SimplePackageFile(66 package_file = SimplePackageFile(
66 os.path.join(subdir, self.getUniqueString()))67 os.path.join(subdir, self.getUniqueString()))
67 os.makedirs(tempdir.abspath(subdir))68 os.makedirs(abspath(tempdir, subdir))
68 writer.write([package_file], tempdir.path)69 writer.write([package_file], tempdir.path)
69 self.assertThat(tempdir.abspath(subdir), DirExists())70 self.assertThat(abspath(tempdir, subdir), DirExists())
7071
71 def test_write_creates_file(self):72 def test_write_creates_file(self):
72 writer = self.get_writer()73 writer = self.get_writer()
73 tempdir = self.useFixture(TempdirFixture())74 tempdir = self.useFixture(TempDir())
74 filename = self.getUniqueString()75 filename = self.getUniqueString()
75 package_file = SimplePackageFile(filename)76 package_file = SimplePackageFile(filename)
76 writer.write([package_file], tempdir.path)77 writer.write([package_file], tempdir.path)
77 self.assertThat(tempdir.abspath(filename), PathExists())78 self.assertThat(abspath(tempdir, filename), PathExists())
7879
79 def test_write_creates_file_with_correct_contents(self):80 def test_write_creates_file_with_correct_contents(self):
80 writer = self.get_writer()81 writer = self.get_writer()
81 tempdir = self.useFixture(TempdirFixture())82 tempdir = self.useFixture(TempDir())
82 filename = self.getUniqueString()83 filename = self.getUniqueString()
83 contents = self.getUniqueString()84 contents = self.getUniqueString()
84 package_file = SimplePackageFile(filename, contents=contents)85 package_file = SimplePackageFile(filename, contents=contents)
85 writer.write([package_file], tempdir.path)86 writer.write([package_file], tempdir.path)
86 self.assertThat(tempdir.abspath(filename), FileContains(contents))87 self.assertThat(abspath(tempdir, filename), FileContains(contents))
8788
88 def test_write_creates_all_files(self):89 def test_write_creates_all_files(self):
89 writer = self.get_writer()90 writer = self.get_writer()
90 tempdir = self.useFixture(TempdirFixture())91 tempdir = self.useFixture(TempDir())
91 filename1 = self.getUniqueString()92 filename1 = self.getUniqueString()
92 package_file1 = SimplePackageFile(filename1)93 package_file1 = SimplePackageFile(filename1)
93 filename2 = self.getUniqueString()94 filename2 = self.getUniqueString()
94 package_file2 = SimplePackageFile(filename2)95 package_file2 = SimplePackageFile(filename2)
95 writer.write([package_file1, package_file2], tempdir.path)96 writer.write([package_file1, package_file2], tempdir.path)
96 self.assertThat(tempdir.abspath(filename1), PathExists())97 self.assertThat(abspath(tempdir, filename1), PathExists())
97 self.assertThat(tempdir.abspath(filename2), PathExists())98 self.assertThat(abspath(tempdir, filename2), PathExists())
9899
99 def test_write_overwrites(self):100 def test_write_overwrites(self):
100 writer = self.get_writer()101 writer = self.get_writer()
101 tempdir = self.useFixture(TempdirFixture())102 tempdir = self.useFixture(TempDir())
102 original_contents = self.getUniqueString()103 original_contents = self.getUniqueString()
103 new_contents = self.getUniqueString()104 new_contents = self.getUniqueString()
104 filename = self.getUniqueString()105 filename = self.getUniqueString()
105 target_path = tempdir.abspath(filename)106 target_path = abspath(tempdir, filename)
106 write_file(target_path, original_contents)107 write_file(target_path, original_contents)
107 package_file = SimplePackageFile(108 package_file = SimplePackageFile(
108 filename, contents=new_contents, overwrite=True)109 filename, contents=new_contents, overwrite=True)
@@ -111,11 +112,11 @@
111112
112 def test_write_doesnt_overwrite_files_with_overwrite_False(self):113 def test_write_doesnt_overwrite_files_with_overwrite_False(self):
113 writer = self.get_writer()114 writer = self.get_writer()
114 tempdir = self.useFixture(TempdirFixture())115 tempdir = self.useFixture(TempDir())
115 original_contents = self.getUniqueString()116 original_contents = self.getUniqueString()
116 new_contents = self.getUniqueString()117 new_contents = self.getUniqueString()
117 filename = self.getUniqueString()118 filename = self.getUniqueString()
118 target_path = tempdir.abspath(filename)119 target_path = abspath(tempdir, filename)
119 write_file(target_path, original_contents)120 write_file(target_path, original_contents)
120 package_file = SimplePackageFile(121 package_file = SimplePackageFile(
121 filename, contents=new_contents, overwrite=False)122 filename, contents=new_contents, overwrite=False)
@@ -124,10 +125,10 @@
124125
125 def test_write_encodes_unicode(self):126 def test_write_encodes_unicode(self):
126 writer = self.get_writer()127 writer = self.get_writer()
127 tempdir = self.useFixture(TempdirFixture())128 tempdir = self.useFixture(TempDir())
128 contents = u"\x80"129 contents = u"\x80"
129 filename = self.getUniqueString()130 filename = self.getUniqueString()
130 target_path = tempdir.abspath(filename)131 target_path = abspath(tempdir, filename)
131 package_file = SimplePackageFile(filename, contents=contents)132 package_file = SimplePackageFile(filename, contents=contents)
132 writer.write([package_file], tempdir.path)133 writer.write([package_file], tempdir.path)
133 self.assertThat(target_path, FileContains(contents.encode('utf-8')))134 self.assertThat(target_path, FileContains(contents.encode('utf-8')))
134135
=== modified file 'versions.cfg'
--- versions.cfg 2012-08-29 15:29:32 +0000
+++ versions.cfg 2012-09-04 15:26:25 +0000
@@ -26,7 +26,7 @@
26simplejson = 2.6.126simplejson = 2.6.1
27testresources = 0.2.527testresources = 0.2.5
28testtools = 0.9.1628testtools = 0.9.16
29treeshape = 0.2.029treeshape = 0.2.1
30wadllib = 1.3.130wadllib = 1.3.1
31wsgi-intercept = 0.5.131wsgi-intercept = 0.5.1
32z3c.recipe.scripts = 1.0.132z3c.recipe.scripts = 1.0.1

Subscribers

People subscribed via source and target branches