def setUp(self): self.env = EnvironmentStub(default_data=True, enable=('trac.*', ), disable=('trac.tests.*', )) self.admin = TracAdmin() self.admin.env_set('', self.env) self.tempdir = mkdtemp()
def setUp(self): self.env = EnvironmentStub(enable=('trac.attachment.*', 'trac.perm.*', ResourceManagerStub), path=mkdtemp()) self.env.config.set('trac', 'permission_policies', 'DefaultPermissionPolicy,LegacyAttachmentPolicy') self.policy = LegacyAttachmentPolicy(self.env)
def setUp(self): self.env = EnvironmentStub() self.tmpdir = mkdtemp() self.repos_path = os.path.join(self.tmpdir, 'gitrepos') os.mkdir(self.repos_path) if self.git_bin: self.env.config.set('git', 'git_bin', self.git_bin)
def setUp(self): self.env = EnvironmentStub(path=mkdtemp()) self.dbm = DatabaseManager(self.env) with self.env.db_transaction: self.dbm.drop_tables(new_schema) self.dbm.create_tables(old_schema) self.dbm.set_database_version(VERSION - 1)
def setUp(self): self.path = mkdtemp() self.src_path = os.path.join(self.path, 'src') self.dst_path = os.path.join(self.path, 'dst') self.src_env = None self.dst_env = None self._destroy_db()
def setUp(self): self.status = None self.headers = None self.response = io.BytesIO() self.dir = mkdtemp() self.filename = os.path.join(self.dir, 'test.txt') self.data = 'contents\n' create_file(self.filename, self.data, 'wb') self.req = None
def setUp(self): self.env = EnvironmentStub(path=mkdtemp()) os.mkdir(self.env.templates_dir) filepath = os.path.join(self.env.templates_dir, TestStubRequestHandler.filename) create_file(filepath, TestStubRequestHandler.template) self.filename = os.path.join(self.env.path, 'test.txt') self.data = 'contents\n' create_file(self.filename, self.data, 'wb')
def setUp(self): temp_dir = mkdtemp() self.authz_file = os.path.join(temp_dir, 'trac-authz-policy') create_file( self.authz_file, textwrap.dedent("""\ # -*- coding: utf-8 -*- # Unicode user names [groups] administrators = éat [wiki:WikiStart] änon = WIKI_VIEW John = WIKI_VIEW @administrators = WIKI_VIEW * = # Unicode page names [wiki:résumé] änon = @administrators = WIKI_VIEW * = # Tickets [ticket:43] änon = TICKET_VIEW @administrators = * = [ticket:*] änon = @administrators = TICKET_VIEW * = # Default repository [repository:@*] änon = @administrators = BROWSER_VIEW, FILE_VIEW * = # Non-default repository [repository:bláh@*] änon = BROWSER_VIEW, FILE_VIEW @administrators = BROWSER_VIEW, FILE_VIEW * = [milestone:milestone1] anonymous = MILESTONE_VIEW """)) self.env = EnvironmentStub( enable=['trac.perm.*', AuthzPolicy] + self.permission_requestors, path=temp_dir, config=[('logging', 'log_level', 'WARNING')]) self.env.config.set('trac', 'permission_policies', 'AuthzPolicy, DefaultPermissionPolicy') self.env.config.set('authz_policy', 'authz_file', self.authz_file)
def setUp(self): self.parent_dir = mkdtemp() self.tracignore = os.path.join(self.parent_dir, '.tracignore') for dname in self.dirs: os.mkdir(os.path.join(self.parent_dir, dname)) for fname in self.files: create_file(os.path.join(self.parent_dir, fname)) self.environ = { 'trac.env_paths': [], 'trac.env_parent_dir': self.parent_dir, }
def image_setup(tc): add_pages(tc, ['page:fr', 'page']) tc.env.path = mkdtemp() add_attachment(tc, 'wiki', 'page:fr', 'img.png') add_attachment(tc, 'wiki', 'page', 'img.png') tc.env.config.set('interwiki', 'shields', 'https://img.shields.io/') tc.env.config.set('interwiki', 'travis', 'https://travis-ci.org/$1?branch=$2') htdocs_location = 'http://assets.example.org/common' tc.context.req.chrome['htdocs_location'] = htdocs_location tc.env.config.set('trac', 'htdocs_location', htdocs_location)
def setUp(self): self.tempdir = mkdtemp() self.filename = os.path.join(self.tempdir, 'config.ini') _write(self.filename, [ u'[ä]', u'öption = ÿ', u'[ä]', u'optīon = 1.1', u'[č]', u'ôption = ž', u'[č]', u'optïon = 1', u'[ė]', u'optioñ = true', ]) self.parser = UnicodeConfigParser() self._read()
def setUp(self): self.env = EnvironmentStub() self.repos_path = mkdtemp() # create git repository and master branch self._git('init') self._git('config', 'core.quotepath', 'true') # ticket:11198 self._git('config', 'user.name', "Joé") # passing utf-8 bytes self._git('config', 'user.email', "*****@*****.**") create_file(os.path.join(self.repos_path, '.gitignore')) self._git('add', '.gitignore') self._git_commit('-a', '-m', 'test', date=datetime(2013, 1, 1, 9, 4, 57))
def attachment_setup(tc): import trac.ticket.api import trac.wiki.api tc.env.path = mkdtemp() with tc.env.db_transaction as db: db("INSERT INTO wiki (name,version) VALUES ('SomePage/SubPage',1)") db("INSERT INTO ticket (id) VALUES (123)") attachment = Attachment(tc.env, 'ticket', 123) attachment.insert('file.txt', io.BytesIO(b''), 0) attachment = Attachment(tc.env, 'wiki', 'WikiStart') attachment.insert('file.txt', io.BytesIO(b''), 0) attachment = Attachment(tc.env, 'wiki', 'SomePage/SubPage') attachment.insert('foo.txt', io.BytesIO(b''), 0)
def setUp(self, module_class): self.path = mkdtemp() if self.authz_policy is not None: self.authz_file = os.path.join(self.path, 'authz_policy.conf') create_file(self.authz_file, self.authz_policy) self.env = EnvironmentStub(enable=['trac.*', AuthzPolicy], path=self.path) self.env.config.set('authz_policy', 'authz_file', self.authz_file) self.env.config.set('trac', 'permission_policies', 'AuthzPolicy, DefaultPermissionPolicy') else: self.env = EnvironmentStub(path=self.path) self.req_handler = module_class(self.env)
def setUp(self): temp_dir = mkdtemp() self.authz_file = os.path.join(temp_dir, 'trac-authz-policy') create_file( self.authz_file, """\ # -*- coding: utf-8 -*- # Unicode user names [groups] administrators = éat [wiki:WikiStart] änon = WIKI_VIEW @administrators = WIKI_VIEW * = # Unicode page names [wiki:résumé] änon = @administrators = WIKI_VIEW * = # Tickets [ticket:43] änon = TICKET_VIEW @administrators = * = [ticket:*] änon = @administrators = TICKET_VIEW * = # Default repository [repository:@*] änon = @administrators = BROWSER_VIEW, FILE_VIEW * = # Non-default repository [repository:bláh@*] änon = BROWSER_VIEW, FILE_VIEW @administrators = BROWSER_VIEW, FILE_VIEW * = """) self.env = EnvironmentStub(enable=['trac.*', AuthzPolicy], path=temp_dir) self.env.config.set('trac', 'permission_policies', 'AuthzPolicy, DefaultPermissionPolicy') self.env.config.set('authz_policy', 'authz_file', self.authz_file)
def setUp(self): self.env = EnvironmentStub(default_data=True, enable=('trac.*',), disable=('trac.tests.*',)) self.env.path = mkdtemp() self.admin = TracAdmin() self.admin.env_set('', self.env) self.datetime = datetime(2001, 1, 1, 1, 1, 1, 0, utc) with self.env.db_transaction as db: db("INSERT INTO wiki (name,version) VALUES ('WikiStart',1)") db("INSERT INTO wiki (name,version) VALUES ('SomePage',1)") db("INSERT INTO ticket (id) VALUES (42)") db("INSERT INTO ticket (id) VALUES (43)") db("INSERT INTO attachment VALUES (%s,%s,%s,%s,%s,%s,%s)", ('ticket', '43', 'foo.txt', 8, to_utimestamp(self.datetime), 'A comment', 'joe'))
def setUp(self): self.env = EnvironmentStub() self.env.path = mkdtemp() self.tmpdir = os.path.join(self.env.path, 'tmp') os.mkdir(self.tmpdir) self.filename = os.path.join(self.tmpdir, 'file.txt') create_file(self.filename, self.page_text) self.admin = WikiAdmin(self.env) with self.env.db_transaction: for name, readonly in (('WritablePage', [0, 1, 0]), ('ReadOnlyPage', [1, 0, 1, 0, 1])): for r in readonly: page = WikiPage(self.env, name) page.text = '[wiki:%s@%d]' % (name, page.version + 1) page.readonly = r page.save('trac', '')
def setUp(self): self.env = EnvironmentStub() self.projects_base = mkdtemp() self.projects_list = os.path.join(self.projects_base, 'projects_list') with open(self.projects_list, 'w') as f: f.write(""" repos1 user1 repos2.git user+2+<*****@*****.**> repos3 """) self.env.config.set('gitweb-repositories', 'projects_list', self.projects_list) self.env.config.set('gitweb-repositories', 'projects_base', self.projects_base) self.env.config.set('gitweb-repositories', 'projects_url', 'https://example.com/%s')
def setUp(self): self.env = EnvironmentStub(enable=('trac.*', TicketOnlyViewsTicket)) self.env.path = mkdtemp() self.env.config.set('trac', 'permission_policies', 'TicketOnlyViewsTicket, LegacyAttachmentPolicy') self.env.config.set('attachment', 'max_size', 512) self.perm = PermissionCache(self.env) self.datetime = datetime(2001, 1, 1, 1, 1, 1, 0, utc) with self.env.db_transaction as db: db("INSERT INTO wiki (name,version) VALUES ('WikiStart',1)") db("INSERT INTO wiki (name,version) VALUES ('SomePage',1)") db("INSERT INTO ticket (id) VALUES (42)") db("INSERT INTO ticket (id) VALUES (43)") db("INSERT INTO attachment VALUES (%s,%s,%s,%s,%s,%s,%s)", ('ticket', '43', 'foo.txt', 8, to_utimestamp(self.datetime), 'A comment', 'joe'))
def setUp(self): self.tmpdir = mkdtemp() self.filename = os.path.join(self.tmpdir, 'trac-test.ini') self.sitename = os.path.join(self.tmpdir, 'trac-site.ini') self.env = EnvironmentStub() self._write([]) self._orig = { 'ComponentMeta._components': ComponentMeta._components, 'ComponentMeta._registry': ComponentMeta._registry, 'ConfigSection.registry': ConfigSection.registry, 'Option.registry': Option.registry, } ComponentMeta._components = list(ComponentMeta._components) ComponentMeta._registry = {interface: list(classes) for interface, classes in ComponentMeta._registry.iteritems()} ConfigSection.registry = {} Option.registry = {}
def setUpClass(cls): class RaiseExceptionHandler(Component): implements(IRequestHandler) def match_request(self, req): if req.path_info.startswith('/raise-exception'): return True def process_request(self, req): if req.args.get('type') == 'tracerror': raise TracError("The TracError message") else: raise Exception("The Exception message") cls.components = [RaiseExceptionHandler] cls.env_path = os.path.join(mkdtemp(), 'env') env = trac.env.Environment(path=cls.env_path, create=True) PermissionSystem(env).grant_permission('admin', 'TRAC_ADMIN') env.shutdown()
def setUp(self): class GenericResourceManager(Component): implements(IResourceManager) def get_resource_realms(self): yield 'parent_realm' def get_resource_url(self, resource, href, **kwargs): pass def get_resource_description(self, resource, format='default', context=None, **kwargs): pass def resource_exists(self, resource): return resource.id == 'parent_id' self.env = EnvironmentStub(enable=(GenericResourceManager,)) self.env.path = mkdtemp()
def test_deploy(self): dest_path = mkdtemp() shebang = ('#!' + sys.executable).encode('utf-8') try: rv, output = self.execute('deploy %s' % dest_path) self.assertEqual(0, rv, output) self.assertTrue( os.path.isfile( os.path.join(dest_path, 'htdocs', 'common', 'js', 'trac.js'))) self.assertTrue( os.path.isfile( os.path.join(dest_path, 'htdocs', 'common', 'css', 'trac.css'))) for ext in ('cgi', 'fcgi', 'wsgi'): content = read_file( os.path.join(dest_path, 'cgi-bin', 'trac.%s' % ext), 'rb') self.assertIn(shebang, content) self.assertEqual(0, content.index(shebang)) self.assertIn(repr(self.env.path).encode('ascii'), content) finally: rmtree(dest_path)
def setUp(self): self.dir = mkdtemp() self.filename = os.path.join(self.dir, 'test.txt') self.data = 'contents\n' create_file(self.filename, self.data, 'wb') self.req = None
def setUp(self): self.tmpdir = mkdtemp() self.authz_file = os.path.join(self.tmpdir, 'trac-authz')
def setUp(self): tmpdir = mkdtemp() self.authz_file = os.path.join(tmpdir, 'trac-authz') create_file( self.authz_file, textwrap.dedent("""\ [groups] group1 = user group2 = @group1 cycle1 = @cycle2 cycle2 = @cycle3 cycle3 = @cycle1, user alias1 = &jekyll alias2 = @alias1 [aliases] jekyll = Mr Hyde # Read / write permissions [/readonly] user = r [/writeonly] user = w [/readwrite] user = rw [/empty] user = # Trailing slashes [/trailing_a] user = r [/trailing_b/] user = r # Sub-paths [/sub/path] user = r # Module usage [module:/module_a] user = r [other:/module_b] user = r [/module_c] user = r [module:/module_d] user = [/module_d] user = r # Wildcards [/wildcard] * = r # Special tokens [/special/anonymous] $anonymous = r [/special/authenticated] $authenticated = r # Groups [/groups_a] @group1 = r [/groups_b] @group2 = r [/cyclic] @cycle1 = r # Precedence [module:/precedence_a] user = [/precedence_a] user = r [/precedence_b] user = r [/precedence_b/sub] user = [/precedence_b/sub/test] user = r [/precedence_c] user = @group1 = r [/precedence_d] @group1 = r user = # Aliases [/aliases_a] &jekyll = r [/aliases_b] @alias2 = r # Scoped repository [scoped:/scope/dir1] joe = r [scoped:/scope/dir2] Jane = r # multiple entries [/multiple] $authenticated = r [/multiple/foo] joe = $authenticated = * = r [/multiple/bar] * = john = r Jane = r $anonymous = r [/multiple/baz] $anonymous = r * = Jane = r [module:/multiple/bar] joe = r john = # multiple entries with module and parent directory [/multiple/1] user = r @group1 = r $authenticated = r * = r [module:/multiple/1/user] user = [module:/multiple/1/group] @group1 = [module:/multiple/1/auth] $authenticated = [module:/multiple/1/star] * = [/multiple/2] user = @group1 = $authenticated = * = [module:/multiple/2/user] user = r [module:/multiple/2/group] @group1 = r [module:/multiple/2/auth] $authenticated = r [module:/multiple/2/star] * = r """)) self.env = EnvironmentStub(enable=[AuthzSourcePolicy], path=tmpdir) self.env.config.set('trac', 'permission_policies', 'AuthzSourcePolicy, DefaultPermissionPolicy') self.env.config.set('svn', 'authz_file', self.authz_file) # Monkey-subclass RepositoryManager to serve mock repositories rm = RepositoryManager(self.env) class TestRepositoryManager(rm.__class__): def get_real_repositories(self): return { Mock(reponame='module'), Mock(reponame='other'), Mock(reponame='scoped') } def get_repository(self, reponame): if reponame == 'scoped': def get_changeset(rev): if rev == 123: def get_changes(): yield ('/dir1/file', ) elif rev == 456: def get_changes(): yield ('/dir2/file', ) else: def get_changes(): return iter([]) return Mock(get_changes=get_changes) return Mock(scope='/scope', get_changeset=get_changeset) return Mock(scope='/') rm.__class__ = TestRepositoryManager
def setUp(self): self.env = EnvironmentStub(path=mkdtemp()) self.env.config.filename = os.path.join(self.env.path, 'trac.ini')
def setUp(self): self.env = EnvironmentStub(path=mkdtemp()) self.env.config.filename = os.path.join(self.env.path, 'trac.ini') AuthzSourcePolicy(self.env) RepositoryManager(self.env)
def setUp(self): self.env = EnvironmentStub(path=mkdtemp()) os.mkdir(self.env.templates_dir) filepath = os.path.join(self.env.templates_dir, self.filename) create_file(filepath, self.template) self.chrome = Chrome(self.env)
def setUp(self): self.env = EnvironmentStub(path=mkdtemp()) self.chrome = Chrome(self.env)