# # Copyright (c) 2009 Testrepository Contributors # # Licensed under either the Apache License, Version 2.0 or the BSD 3-clause # license at the users choice. A copy of both licenses are available in the # project source as Apache-2.0 and BSD. You may not use this file except in # compliance with one of these two licences. # # Unless required by applicable law or agreed to in writing, software # distributed under these licenses is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # license you chose for the specific language governing permissions and # limitations under that license. """Tests for the stubpackage test helper.""" import os.path from testrepository.tests import ResourcedTestCase from testrepository.tests.stubpackage import ( StubPackageResource, TempDirResource, ) class TestStubPackageResource(ResourcedTestCase): def test_has_tempdir(self): resource = StubPackageResource('foo', []) self.assertEqual(1, len(resource.resources)) self.assertIsInstance(resource.resources[0][1], TempDirResource) def test_writes_package(self): resource = StubPackageResource('foo', [('bar.py', 'woo')]) pkg = resource.getResource() self.addCleanup(resource.finishedWith, pkg) self.assertEqual('', open(os.path.join(pkg.base, 'foo', '__init__.py')).read()) self.assertEqual('woo', open(os.path.join(pkg.base, 'foo', 'bar.py')).read()) def test_no__init__(self): resource = StubPackageResource('foo', [('bar.py', 'woo')], init=False) pkg = resource.getResource() self.addCleanup(resource.finishedWith, pkg) self.assertFalse(os.path.exists(os.path.join(pkg.base, 'foo', '__init__.py'))) class TestTempDirResource(ResourcedTestCase): """Tests for the StubPackage resource.""" def test_makes_a_dir(self): resource = TempDirResource() tempdir = resource.getResource() try: self.assertTrue(os.path.exists(tempdir)) finally: resource.finishedWith(tempdir) self.assertFalse(os.path.exists(tempdir))