/usr/lib/python2.7/dist-packages/testrepository/tests/stubpackage.py is in python-testrepository 0.0.20-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | #
# 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.
"""A TestResource that provides a temporary python package."""
import os.path
import shutil
import tempfile
from testresources import TestResource
class TempDirResource(TestResource):
"""A temporary directory resource.
This resource is never considered dirty.
"""
def make(self, dependency_resources):
return tempfile.mkdtemp()
def clean(self, resource):
shutil.rmtree(resource, ignore_errors=True)
class StubPackage(object):
"""A temporary package for tests.
:ivar base: The directory containing the package dir.
"""
class StubPackageResource(TestResource):
def __init__(self, packagename, modulelist, init=True):
super(StubPackageResource, self).__init__()
self.packagename = packagename
self.modulelist = modulelist
self.init = init
self.resources = [('base', TempDirResource())]
def make(self, dependency_resources):
result = StubPackage()
base = dependency_resources['base']
root = os.path.join(base, self.packagename)
os.mkdir(root)
init_seen = not self.init
for modulename, contents in self.modulelist:
stream = open(os.path.join(root, modulename), 'wt')
try:
stream.write(contents)
finally:
stream.close()
if modulename == '__init__.py':
init_seen = True
if not init_seen:
open(os.path.join(root, '__init__.py'), 'wt').close()
return result
|