示例#1
0
 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()
示例#2
0
 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)
示例#3
0
 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)
示例#4
0
 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)
示例#5
0
 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()
示例#6
0
 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
示例#7
0
文件: main.py 项目: skshel123/trac
 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')
示例#8
0
    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)
示例#9
0
文件: main.py 项目: skshel123/trac
 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,
     }
示例#10
0
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)
示例#11
0
 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()
示例#12
0
 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))
示例#13
0
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)
示例#14
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)
示例#15
0
    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)
示例#16
0
 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'))
示例#17
0
 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', '')
示例#18
0
    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')
示例#19
0
    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'))
示例#20
0
 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 = {}
示例#21
0
文件: main.py 项目: skshel123/trac
    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()
示例#22
0
    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()
示例#23
0
文件: console.py 项目: jacdevos/trac
 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)
示例#24
0
 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
示例#25
0
 def setUp(self):
     self.tmpdir = mkdtemp()
     self.authz_file = os.path.join(self.tmpdir, 'trac-authz')
示例#26
0
    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
示例#27
0
文件: db31.py 项目: wataash/trac
 def setUp(self):
     self.env = EnvironmentStub(path=mkdtemp())
     self.env.config.filename = os.path.join(self.env.path, 'trac.ini')
示例#28
0
文件: db39.py 项目: wataash/trac
 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)
示例#29
0
 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)
示例#30
0
 def setUp(self):
     self.env = EnvironmentStub(path=mkdtemp())
     self.chrome = Chrome(self.env)