示例#1
0
 def test_config_setitem_getitem(self):
     config = funconf.Config()
     config.set('foo', 'bar', False)
     self.assertFalse(config['foo_bar'])
     self.assertFalse(config.foo['bar'])
     self.assertRaises(ValueError, config.__setitem__, 'blah', 4)
     self.assertRaises(KeyError, config.__getitem__, 'blah')
示例#2
0
 def test_setting_attributes(self):
     config = funconf.Config()
     self.assertRaises(Exception, setattr, config, 'blah', 4)
     config.set('foo', 'bar', False)
     self.assertRaises(Exception, setattr, config.foo, 'blah', 4)
     config.foo.bar = True
     self.assertTrue(config.foo.bar)
示例#3
0
 def test_config_section_decorate(self):
     config = funconf.Config()
     config.set('foo', 'bar', False)
     @config.foo
     def func(**k):
         self.assertFalse(k['bar'])
     func()
示例#4
0
 def test_wrapped_goes_default(self):
     config = funconf.Config()
     config.set('foo', 'car', 3)
     @config.foo
     def main(bar, car):
         return bar
     self.assertEqual(main(2), 2)
示例#5
0
 def test_positional_or_keyword_with_no_option(self):
     #relates to issue #1 
     config = funconf.Config()
     config.set('foo', 'a', 3)
     @config.foo
     def bread(**k):
         return k
     self.assertRaises(TypeError, bread, 1)
示例#6
0
 def test_accessing_strict_attributes(self, mock_open):
     mock_open.return_value = StringIO(TEST_CONFIG)
     config = funconf.Config('mocked.conf')
     self.assertEqual(config.aaa.int, 4)
     config.aaa.int = 5
     self.assertEqual(config.aaa.int, 5)
     self.assertRaises(funconf.ConfigAttributeError, getattr, config.aaa,
             'nope')
示例#7
0
 def test_setting(self):
     config = funconf.Config()
     config.set('foo', 'bar', [34, 2, 5])
     config.set('foo', 'moo', "shoe")
     config.set('foo', 'bar', 24.22323)
     config.set('bread', 'milk', True)
     config.set('bread', 'butter', False)
     self.assertTrue(config.bread.milk)
示例#8
0
 def test_config_decorate(self):
     config = funconf.Config()
     config.set('foo', 'bar', False)
     @config
     def func(**k):
         self.assertFalse(k['foo_bar'])
     func()
     func(foo_bar='f')
示例#9
0
 def test_is_lazy_flag(self):
     config = funconf.Config()
     @config(lazy=True)
     def func(foo=True):
         return foo 
     self.assertEqual(func(foo="y"), True)
     @config.bar(lazy=True)
     def func(foo=True):
         return foo 
     self.assertEqual(func(foo="y"), True)
示例#10
0
 def test_positional_or_keyword_with_var_args(self):
     #relates to issue #1 
     config = funconf.Config()
     config.set('foo', 'a', 3)
     @config.foo
     def bread(*b, **k):
         return b
     a = bread(4)
     self.assertEqual(a, (4, ))
     @config.foo
     def bread(a, **k):
         return a
     a = bread(4)
     @config.foo
     def bread(b, **k):
         return b
     a = bread(4)
     self.assertEqual(a, 4)
"""
"""

from multiprocessing import Process
from threading import Thread
import time

import begin
import funconf
from virtualbox import pool

config = funconf.Config(["tests/test_vm.conf", "test_vm.conf"])


def on_machine_state_changed(event):
    vbox = pool.VirtualBox()
    machine = vbox.find_machine(event.machine_id)
    print("Machine '%s' state has changed to %s" % (machine.name, event.state))


# TODO :  BUG found in vboxapi ...
#         If a call to vboxapi.VirtualBoxManager is made in the main process
#         followed by another call in a forked multiprocess Process, the call
#         in the subprocess freezes and will not return...  Bug in one of the
#         lower level APIs
# if __name__ == '__main__':
#    vbox = pool.VirtualBox()
#    vbox.register_on_machine_state_changed(on_machine_state_changed)

# Note: python3.x this maybe solved using set_start_method
示例#12
0
import begin
import funconf

config = funconf.Config('demo.conf')


@begin.subcommand
@config.foo
def foo(*a, **k):
    "This is the foo code"
    print("Foo got a=%s k=%s" % (a, k))
    print("Config is:")
    print(config)


@begin.subcommand
@config.bread
def bread(*a, **k):
    "This is the bread code"
    print("Bread got a=%s k=%s" % (a, k))
    print("Config is:")
    print(config)


@begin.subcommand
@config
def run(*a, **k):
    "This is the run command that controls all"
    print("Run got a=%s k=%s" % (a, k))
    print("Config is:")
    print(config)
示例#13
0
 def test_not_strict_config(self):
     config = funconf.Config()
     self.assertTrue(dict(config.foo) == {})
示例#14
0
 def test_strict_config(self):
     config = funconf.Config(strict=True)
     self.assertRaises(funconf.ConfigAttributeError, getattr, config, 'nope')
示例#15
0
 def test_empty_section(self, mock_open):
     mock_open.return_value = StringIO(u("empty: 1"))
     config = funconf.Config('mocked.conf')
示例#16
0
 def test_delattr(self):
     config = funconf.Config()
     config.set('foo', 'bar', False)
     self.assertRaises(NotImplementedError, config.__delitem__, 'foo')
     self.assertRaises(NotImplementedError, config.foo.__delitem__, 'bar')
示例#17
0
 def test_print_config(self, mock_open):
     mock_open.return_value = StringIO(TEST_CONFIG)
     config = funconf.Config('mocked.conf')
     as_str = str(config)
     self.assertEqual(len(config), 8)
     self.assertEqual(len(config.bbb), 4)
示例#18
0
 def test_reserved_words(self):
     config = funconf.Config()
     self.assertRaises(ValueError, config.set, 'set', 'foo', True)
     config.set('foo', 'bar', False)
     self.assertRaises(ValueError, config.set, 'foo', 'items', True)
示例#19
0
 def test_lazy_cast_not_in_config(self):
     config = funconf.Config()
     @config
     def main(foo=True):
         return foo
     self.assertTrue(main('t') is True)
示例#20
0
 def test_load_string(self):
     config = funconf.Config()
     config.load(TEST_CONFIG)
import unittest
import os
import time
import contextlib
import shlex
import os

import funconf

import virtualbox
from virtualbox import library

config = funconf.Config(['tests/test_vm.conf', 'test_vm.conf'])
username = config.machine.username
password = config.machine.password


class TestTestVM(unittest.TestCase):
    def test_lock_vm(self):
        """create a locked session for the test_vm machine"""
        vbox = virtualbox.VirtualBox()

        # Assert that we can create a lock over a machine
        vm = vbox.find_machine('test_vm')
        s = virtualbox.Session()
        vm.lock_machine(s, virtualbox.library.LockType.shared)
        self.assertTrue(s.state == virtualbox.library.SessionState.locked)

        # Assert we can only lock a session object once
        self.assertRaises(library.VBoxErrorInvalidObjectState, vm.lock_machine,
                          s, virtualbox.library.LockType.shared)
示例#22
0
 def test_dirty(self):
     config = funconf.Config()
     config.set('foo', 'bar', False)
     self.assertTrue(config.foo.dirty)
     self.assertFalse(config.foo.dirty)
示例#23
0
 def test_dir(self):
     config = funconf.Config()
     config.set('foo', 'bar', False)
     self.assertTrue('foo' in dir(config))
     self.assertTrue('bar' in dir(config.foo))
示例#24
0
import bottle
import begin
import funconf


@bottle.route('/hello')
def hello():
    return "Hello World!"


config = funconf.Config(['webapp.conf', '~/.webapp.conf'])


@begin.start(env_prefix="WEBAPP_")
@config.web
def main(host='127.0.0.1', port=8080, debug=False):
    print(config)
    bottle.run(host=host, port=port, debug=debug)
示例#25
0
 def test_file_doesnt_exist(self):
     funconf.Config(['blaoo.con'])