Пример #1
0
    def test_load_repeated(self):
        conf = webscrapbook.Config()
        conf.load(os.path.join(root_dir, 'test_config'))

        # check if previous loaded config entries no more exist
        conf.load(os.path.join(root_dir, 'test_config_load_repeated'))
        self.assertDictEqual(
            conf['app'],
            OrderedDict([
                ('name', 'mywsb2'),
                ('theme', 'default'),
                ('root', '.'),
                ('base', ''),
                ('index', ''),
                ('backup_dir', '.wsb/backup'),
                ('content_security_policy', 'strict'),
                ('allowed_x_for', 0),
                ('allowed_x_proto', 0),
                ('allowed_x_host', 0),
                ('allowed_x_port', 0),
                ('allowed_x_prefix', 0),
            ]))
        with self.assertRaises(KeyError):
            conf['book']['book2']
        with self.assertRaises(KeyError):
            conf['auth']
Пример #2
0
    def test_make_app2(self):
        # pass root, config
        root = os.path.join(root_dir, 'test_app_helpers', 'make_app1')
        config_dir = os.path.join(root_dir, 'test_app_helpers', 'make_app2')
        config = webscrapbook.Config()
        config.load(config_dir)

        app = wsbapp.make_app(root, config)
        with app.app_context():
            self.assertEqual(current_app.config['WEBSCRAPBOOK_HOST'].config['app']['name'], 'mywsb2')
Пример #3
0
    def test_iter(self):
        # test lazy loading
        _cwd = os.getcwd()
        os.chdir(os.path.join(root_dir, 'test_config'))

        try:
            conf = webscrapbook.Config()
            self.assertEqual(list(iter(conf)),
                             ['app', 'server', 'browser', 'book', 'auth'])
        finally:
            os.chdir(_cwd)
Пример #4
0
 def test_load_constants(self):
     # check if WSB_USER_DIR, WSB_USER_CONFIG, WSB_DIR, and WSB_CONFIG are honored
     conf = webscrapbook.Config()
     conf.load(os.path.join(root_dir, 'test_config_load_constants'))
     self.assertEqual(conf['app']['name'], 'myuserwsbx')
     self.assertEqual(conf['app']['theme'], 'mytheme')
     self.assertEqual(conf['server']['port'], 7777)
     self.assertEqual(conf['book']['']['name'], 'myuserbookx')
     self.assertFalse(conf['book']['']['no_tree'])
     self.assertEqual(conf['book']['book1']['name'], 'mybook1')
     self.assertEqual(conf['book']['book1']['top_dir'], '')
     self.assertTrue(conf['book']['book1']['no_tree'])
     self.assertEqual(conf['book']['book2']['name'], 'mybook2')
     self.assertEqual(conf['book']['book2']['top_dir'], '')
     self.assertFalse(conf['book']['book2']['no_tree'])
Пример #5
0
    def test_getname(self):
        # test lazy loading
        _cwd = os.getcwd()
        os.chdir(os.path.join(root_dir, 'test_config'))

        try:
            conf = webscrapbook.Config()
            self.assertEqual(conf.getname('app.name'), 'mywsb')
            self.assertEqual(conf.getname('app.allowed_x_for'), '1')
            self.assertEqual(conf.getname('server.ssl_on'), 'true')
            self.assertEqual(conf.getname('server.browse'), 'yes')
            self.assertEqual(conf.getname('book..name'), 'mybook')
            self.assertEqual(conf.getname('book..top_dir'), '')
            self.assertEqual(conf.getname('book.book2.name'), 'mybook2')
            self.assertEqual(conf.getname('book.book2.top_dir'), '')
        finally:
            os.chdir(_cwd)
Пример #6
0
    def test_getitem(self):
        # test lazy loading
        _cwd = os.getcwd()
        os.chdir(os.path.join(root_dir, 'test_config'))

        try:
            conf = webscrapbook.Config()
            self.assertEqual(conf['app']['name'], 'mywsb')
            self.assertEqual(conf['app']['allowed_x_for'], 1)
            self.assertEqual(conf['server']['ssl_on'], True)
            self.assertEqual(conf['server']['browse'], True)
            self.assertEqual(conf['book']['']['name'], 'mybook')
            self.assertEqual(conf['book']['']['top_dir'], '')
            self.assertEqual(conf['book']['book2']['name'], 'mybook2')
            self.assertEqual(conf['book']['book2']['top_dir'], '')
        finally:
            os.chdir(_cwd)
Пример #7
0
 def test_load(self):
     conf = webscrapbook.Config()
     conf.load(os.path.join(root_dir, 'test_config'))
     self.assertDictEqual(
         conf['app'],
         OrderedDict([
             ('name', 'mywsb'),
             ('theme', 'mytheme'),
             ('root', 'myroot'),
             ('base', 'mybase'),
             ('content_security_policy', 'strict'),
             ('allowed_x_for', 1),
             ('allowed_x_proto', 1),
             ('allowed_x_host', 0),
             ('allowed_x_port', 0),
             ('allowed_x_prefix', 0),
         ]))
     self.assertDictEqual(
         conf['server'],
         OrderedDict([
             ('port', 9999),
             ('host', 'localhost'),
             ('ssl_on', True),
             ('ssl_key', './wsb/wsb.key'),
             ('ssl_cert', './wsb/wsb.crt'),
             ('ssl_pw', ''),
             ('browse', True),
         ]))
     self.assertDictEqual(
         conf['browser'],
         OrderedDict([
             ('command', ''),
             ('index', ''),
             ('cache_prefix', 'wsb.'),
             ('cache_expire', 123456),
             ('use_jar', False),
         ]))
     self.assertDictEqual(
         conf['book'],
         OrderedDict([
             ('',
              OrderedDict([
                  ('name', 'mybook'),
                  ('top_dir', ''),
                  ('data_dir', 'data'),
                  ('tree_dir', 'tree'),
                  ('index', 'tree/map.html'),
                  ('no_tree', False),
              ])),
             ('book2',
              OrderedDict([
                  ('name', 'mybook2'),
                  ('top_dir', ''),
                  ('data_dir', ''),
                  ('tree_dir', '.wsb/tree'),
                  ('index', '.wsb/tree/map.html'),
                  ('no_tree', True),
              ])),
             ('book3',
              OrderedDict([
                  ('name', 'mybook3'),
                  ('top_dir', 'sb3'),
                  ('data_dir', 'data'),
                  ('tree_dir', 'tree'),
                  ('index', 'tree/map.html'),
                  ('no_tree', True),
              ])),
         ]))
     self.assertDictEqual(
         conf['auth'],
         OrderedDict([
             ('user1',
              OrderedDict([
                  ('user', 'myuser1'),
                  ('permission', 'all'),
              ])),
         ]))
Пример #8
0
    def test_dump(self):
        # test lazy loading
        _cwd = os.getcwd()
        os.chdir(os.path.join(root_dir, 'test_config'))

        try:
            conf = webscrapbook.Config()
            with io.StringIO() as fh:
                conf.dump(fh)
                output = fh.getvalue()
            self.assertEqual(
                output, """[app]
name = mywsb
theme = mytheme
root = myroot
base = mybase
content_security_policy = strict
allowed_x_for = 1
allowed_x_proto = 1
allowed_x_host = 0
allowed_x_port = 0
allowed_x_prefix = 0

[server]
port = 9999
host = localhost
ssl_on = true
ssl_key = ./wsb/wsb.key
ssl_cert = ./wsb/wsb.crt
ssl_pw = 
browse = yes

[browser]
command = 
index = 
cache_prefix = wsb.
cache_expire = 123456
use_jar = no

[book ""]
name = mybook
top_dir = 
data_dir = data
tree_dir = tree
index = tree/map.html
no_tree = false

[book "book2"]
name = mybook2
top_dir = 
data_dir = 
tree_dir = .wsb/tree
index = .wsb/tree/map.html
no_tree = on

[book "book3"]
name = mybook3
top_dir = sb3
data_dir = data
tree_dir = tree
index = tree/map.html
no_tree = on

[auth "user1"]
user = myuser1
permission = all

""")
        finally:
            os.chdir(_cwd)