Beispiel #1
0
    def setUp(self):
        def redirect(self):
            raise RequestDone

        self.env = EnvironmentStub(enable=[IniAdminPlugin])
        self.iniadmin = IniAdminPlugin(self.env)
        self.req = Mock(base_path='',
                        chrome={},
                        method='GET',
                        args={},
                        session={},
                        abs_href=Href('/'),
                        href=Href('/'),
                        locale=None,
                        perm=MockPerm(),
                        authname=None,
                        tz=None,
                        redirect=redirect)
Beispiel #2
0
    def setUp(self):
        def redirect(self):
            raise RequestDone

        self.env = EnvironmentStub(enable=[IniAdminPlugin])
        self.iniadmin = IniAdminPlugin(self.env)
        self.req = Mock(base_path='', chrome={}, method='GET', args={},
                        session={}, abs_href=Href('/'), href=Href('/'),
                        locale=None, perm=MockPerm(), authname=None, tz=None,
                        redirect=redirect)
Beispiel #3
0
class IniAdminTestCase(unittest.TestCase):
    def setUp(self):
        def redirect(self):
            raise RequestDone

        self.env = EnvironmentStub(enable=[IniAdminPlugin])
        self.iniadmin = IniAdminPlugin(self.env)
        self.req = Mock(base_path='',
                        chrome={},
                        method='GET',
                        args={},
                        session={},
                        abs_href=Href('/'),
                        href=Href('/'),
                        locale=None,
                        perm=MockPerm(),
                        authname=None,
                        tz=None,
                        redirect=redirect)

    def tearDown(self):
        self.env.reset_db()

    def test_patterns_match_empty(self):
        match = self.iniadmin._patterns_match([u''])
        self.assertFalse(match('a'))
        self.assertFalse(match(u'あ'))
        self.assertFalse(match(u'sqlite:db/trac.db'))

    def test_patterns_match_wildcard(self):
        match = self.iniadmin._patterns_match([u'p??sword', u'passw**d'])
        self.assertFalse(match('a'))
        self.assertTrue(match('password'))
        self.assertTrue(match(u'páésword'))
        self.assertTrue(match('passwd'))
        self.assertTrue(match(u'passwod'))
        self.assertTrue(match(u'passwééééEéééééd'))

    def test_patterns_match_meta(self):
        match = self.iniadmin._patterns_match([u'pas.wo+d'])
        self.assertFalse(match('a'))
        self.assertTrue(match('pas.wo+d'))
        self.assertFalse(match(u'passwood'))

    def test_excludes(self):
        self.assertRaises(TracError, self.iniadmin.render_admin_panel,
                          self.req, 'tracini', 'iniadmin', '')

        template, data = self.iniadmin.render_admin_panel(
            self.req, 'tracini', 'trac', '')
        self.assertTrue(
            any(opt['name'] == 'database'
                for opt in data['iniadmin']['options']))

    def test_passwords(self):
        template, data = self.iniadmin.render_admin_panel(
            self.req, 'tracini', 'trac', '')
        self.assertTrue(
            any(opt['type'] == 'password'
                for opt in data['iniadmin']['options']
                if opt['name'] == 'database'))

        template, data = self.iniadmin.render_admin_panel(
            self.req, 'tracini', 'notification', '')
        self.assertTrue(
            any(opt['type'] == 'password'
                for opt in data['iniadmin']['options']
                if opt['name'] == 'smtp_password'))

    def test_post_excludes(self):
        config = self.env.config
        excludes = self.env.config.get('iniadmin', 'excludes')

        self.req.method = 'POST'
        self.req.args['name'] = 'Updated via iniadmin'
        self.assertRaises(RequestDone, self.iniadmin.render_admin_panel,
                          self.req, 'tracini', 'project', '')
        self.assertEqual('Updated via iniadmin', config.get('project', 'name'))

        self.req.method = 'POST'
        self.req.args['excludes'] = '***'
        self.assertRaises(TracError, self.iniadmin.render_admin_panel,
                          self.req, 'tracini', 'iniadmin', '')
        self.assertEqual(excludes, config.get('iniadmin', 'excludes'))

    def test_option_doc_nonascii_ticket4179(self):
        option = Option('iniadmin-test', 'name', '', doc='résumé')
        template, data = self.iniadmin.render_admin_panel(
            self.req, 'tracini', 'iniadmin-test', '')
        self.assertTrue(
            all(
                type(opt['doc']) is unicode
                for opt in data['iniadmin']['options']
                if opt['name'] == 'name'))
Beispiel #4
0
class IniAdminTestCase(unittest.TestCase):

    def setUp(self):
        def redirect(self):
            raise RequestDone

        self.env = EnvironmentStub(enable=[IniAdminPlugin])
        self.iniadmin = IniAdminPlugin(self.env)
        self.req = Mock(base_path='', chrome={}, method='GET', args={},
                        session={}, abs_href=Href('/'), href=Href('/'),
                        locale=None, perm=MockPerm(), authname=None, tz=None,
                        redirect=redirect)

    def tearDown(self):
        self.env.reset_db()

    def test_patterns_match_empty(self):
        match = self.iniadmin._patterns_match([u''])
        self.assertFalse(match('a'))
        self.assertFalse(match(u'あ'))
        self.assertFalse(match(u'sqlite:db/trac.db'))

    def test_patterns_match_wildcard(self):
        match = self.iniadmin._patterns_match([u'p??sword', u'passw**d'])
        self.assertFalse(match('a'))
        self.assertTrue(match('password'))
        self.assertTrue(match(u'páésword'))
        self.assertTrue(match('passwd'))
        self.assertTrue(match(u'passwod'))
        self.assertTrue(match(u'passwééééEéééééd'))

    def test_patterns_match_meta(self):
        match = self.iniadmin._patterns_match([u'pas.wo+d'])
        self.assertFalse(match('a'))
        self.assertTrue(match('pas.wo+d'))
        self.assertFalse(match(u'passwood'))

    def test_excludes(self):
        self.assertRaises(TracError, self.iniadmin.render_admin_panel,
                          self.req, 'tracini', 'iniadmin', '')

        template, data = self.iniadmin.render_admin_panel(
            self.req, 'tracini', 'trac', '')
        self.assertTrue(any(opt['name'] == 'database'
                            for opt in data['iniadmin']['options']))

    def test_passwords(self):
        template, data = self.iniadmin.render_admin_panel(
            self.req, 'tracini', 'trac', '')
        self.assertTrue(any(opt['type'] == 'password'
                            for opt in data['iniadmin']['options']
                            if opt['name'] == 'database'))

        template, data = self.iniadmin.render_admin_panel(
            self.req, 'tracini', 'notification', '')
        self.assertTrue(any(opt['type'] == 'password'
                            for opt in data['iniadmin']['options']
                            if opt['name'] == 'smtp_password'))

    def test_post_excludes(self):
        config = self.env.config
        excludes = self.env.config.get('iniadmin', 'excludes')

        self.req.method = 'POST'
        self.req.args['name'] = 'Updated via iniadmin'
        self.assertRaises(RequestDone,
                          self.iniadmin.render_admin_panel,
                          self.req, 'tracini', 'project', '')
        self.assertEqual('Updated via iniadmin', config.get('project', 'name'))

        self.req.method = 'POST'
        self.req.args['excludes'] = '***'
        self.assertRaises(TracError,
                          self.iniadmin.render_admin_panel,
                          self.req, 'tracini', 'iniadmin', '')
        self.assertEqual(excludes, config.get('iniadmin', 'excludes'))

    def test_option_doc_nonascii_ticket4179(self):
        option = Option('iniadmin-test', 'name', '', doc='résumé')
        template, data = self.iniadmin.render_admin_panel(
            self.req, 'tracini', 'iniadmin-test', '')
        self.assertTrue(all(type(opt['doc']) is unicode
                            for opt in data['iniadmin']['options']
                            if opt['name'] == 'name'))