Ejemplo n.º 1
0
def test_comparisons():
    o1 = OpenStruct()
    o1.a.b.c = 10

    assert (o1 == 10) is False
    assert (o1 is True) is False

    o2 = OpenStruct()
    o2.a.b.c = 10

    assert (o1 == o2) is True
    assert (o1 != o2) is False
    assert (o1 is o2) is False
    assert (o2 is o1) is False

    with pytest.raises(TypeError):
        o1 > o2

    with pytest.raises(TypeError):
        o1 < o2

    with pytest.raises(TypeError):
        o1 >= o2

    with pytest.raises(TypeError):
        o1 <= o2
Ejemplo n.º 2
0
def test_inheritance_types():
    d = {
        'a': 1,
        'b': '2',
        'c': True,
    }

    o = OpenStructChild2(a=d,
                         b=OpenStruct(d),
                         c=OpenStructChild2(d),
                         d=OpenStructChild1(d),
                         e=OpenStructChild2(OpenStructChild1(d)))
    o.n.o = 1
    o.p = d
    o.q = OpenStruct(d)
    o.r = OpenStructChild2(d)
    o.s = OpenStructChild1(d)
    o.t = OpenStructChild2(OpenStructChild1(d))

    assert isinstance(o, OpenStructChild2)
    assert isinstance(o.a, dict)
    assert not isinstance(o.b, OpenStructChild2)
    assert isinstance(o.c, OpenStructChild2)
    assert isinstance(o.d, OpenStructChild1)
    assert isinstance(o.e, OpenStructChild2)
    assert isinstance(o.n, OpenStructChild2)
    assert isinstance(o.n.o, int)
    assert isinstance(o.p, dict)
    assert not isinstance(o.q, OpenStructChild2)
    assert isinstance(o.r, OpenStructChild2)
    assert isinstance(o.s, OpenStructChild1)
    assert isinstance(o.t, OpenStructChild2)
Ejemplo n.º 3
0
def test_process_tasks_src_only(monkeypatch, mock_provisioner):
    """
    In this scenario _run has to call mktemp on remote system to come up with a suitable temporary file to use
    """
    src = '/some/local/file'

    monkeypatch.setattr(os.path, 'isfile', lambda x: True)

    def side_effect(x, warn_only=None):
        if x == 'mktemp':
            return '/tmp/whatever'

        return True

    monkeypatch.setattr(fabric.operations, 'run',
                        Mock(side_effect=side_effect))

    job1 = OpenStruct(src=src)
    task1 = OpenStruct(run=[job1.__dict__])
    list_of_tasks = [task1]

    mock_provisioner.process_tasks(list_of_tasks)

    expected_run_calls = [
        call('mktemp'),
        call('mkdir -p {0}'.format('/tmp')),
        call('{0}'.format('/tmp/whatever')),
    ]
    expected_put_calls = [
        call(src, '/tmp/whatever', mode=0500, use_sudo=False),
    ]
Ejemplo n.º 4
0
def test_inheritance_types():
    class TestOpenStruct(OpenStruct):
        pass

    class AnotherOpenStruct(OpenStruct):
        pass

    d = {'a': 1, 'b': 2, 'c': 3}

    o = TestOpenStruct(a=d,
                       b=OpenStruct(d),
                       c=TestOpenStruct(d),
                       d=AnotherOpenStruct(d),
                       e=TestOpenStruct(AnotherOpenStruct(d)))
    o.n.o = 1
    o.p = d
    o.q = OpenStruct(d)
    o.r = TestOpenStruct(d)
    o.s = AnotherOpenStruct(d)
    o.t = TestOpenStruct(AnotherOpenStruct(d))

    assert isinstance(o, TestOpenStruct)
    assert isinstance(o.a, dict)
    assert not isinstance(o.b, TestOpenStruct)
    assert isinstance(o.c, TestOpenStruct)
    assert isinstance(o.d, AnotherOpenStruct)
    assert isinstance(o.e, TestOpenStruct)
    assert isinstance(o.n, TestOpenStruct)
    assert isinstance(o.n.o, int)
    assert isinstance(o.p, dict)
    assert not isinstance(o.q, TestOpenStruct)
    assert isinstance(o.r, TestOpenStruct)
    assert isinstance(o.s, AnotherOpenStruct)
    assert isinstance(o.t, TestOpenStruct)
Ejemplo n.º 5
0
def test_items():
    s = 0
    o = OpenStruct(a=1, b=2, c=4, d=8)

    for key, value in o.items():
        s += value

    assert s == 15
Ejemplo n.º 6
0
def test_items():
    s = 0
    o = OpenStruct(a=1, b=2, c=4, d=8)

    for key, value in o.items():
        s += value

    assert s == 15
Ejemplo n.º 7
0
def test_process_tasks_single_no_sudo_inline(mock_provisioner):
    job1 = OpenStruct(body='whoami', sudo=False)
    task1 = OpenStruct(run=[job1])
    list_of_tasks = [task1]

    mock_provisioner.process_tasks(list_of_tasks)
    expected_calls = [call('whoami')]
    assert fabric.operations.run.mock_calls == expected_calls
Ejemplo n.º 8
0
    def wrap_relations(self, obj, many=False):
        obj.status_obj = OpenStruct()
        obj.status_obj.id = obj.status
        obj.status_obj.name = inverted(User.STATUSES)[obj.status]

        obj.role_obj = OpenStruct()
        obj.role_obj.id = obj.role
        obj.role_obj.name = inverted(User.ROLES)[obj.role]
Ejemplo n.º 9
0
    def __init__(self, recipe_file, **override):
        recipe = yaml.load(recipe_file)

        OpenStruct.__init__(self, **recipe)

        if override:
            self.__override_recipe(override)

        self.__render_tags()
        self.__validate()
Ejemplo n.º 10
0
def test_set_get_item():
    o = OpenStruct()
    o['a'] = 10
    assert o['a'] == 10
    assert o.a == 10

    o = OpenStruct()
    o['a']['b']['c'] = 10
    assert o['a']['b']['c'] == 10
    assert o['a']['b'] == {'c': 10}
    assert o['a'] == {'b': {'c': 10}}
    assert o == {'a': {'b': {'c': 10}}}
Ejemplo n.º 11
0
def test_constructor_clone():
    o = OpenStruct(a=1, b=2, c=4)
    assert o == {'a': 1, 'b': 2, 'c': 4}

    a = OpenStruct(o)
    assert o == a

    b = OpenStruct(o.__dict__)
    assert o == b

    c = OpenStruct(**(o.__dict__))
    assert o == c

    d = OpenStruct(**o)
    assert o == d
Ejemplo n.º 12
0
    def get_dependencies(self):
        """
        Detect commit dependency tree, and return a tuple of dicts mapping
        this in both directions.  Note that the dependency tree goes in
        the reverse direction to the git commit graph, in that the leaves
        of the dependency tree are the oldest commits, because newer
        commits depend on older commits

        :return: (dependencies_from, dependencies_on)
        """

        detector_args = OpenStruct({
            'recurse': True,
            'exclude_commits': [self.base],
            'debug': self.debug,
            'context_lines': self.context_lines,
        })
        detector = DependencyDetector(detector_args, self.repo)
        listener = ExplodeDependencyListener({})
        detector.add_listener(listener)

        revs = GitUtils.rev_list("%s..%s" % (self.base, self.head))
        for rev in revs:
            try:
                detector.find_dependencies(rev)
            except KeyboardInterrupt:
                pass

        return (detector.commits, listener.dependencies_from(),
                listener.dependencies_on())
Ejemplo n.º 13
0
def test_shallow_struct():
    o = OpenStruct()
    o.a = 10

    assert o.a == 10
    assert o.nonexistent_attribute is not None

    if o:
        assert True
    else:
        assert False

    if not o:
        assert False
    else:
        assert True
Ejemplo n.º 14
0
def test_shallow_struct():
    o = OpenStruct()
    o.a = 10

    assert o.a == 10
    assert o.nonexistent_attribute is not None

    if o:
        assert True
    else:
        assert False

    if not o:
        assert False
    else:
        assert True
Ejemplo n.º 15
0
def test_iter():
    keys = []
    o = OpenStruct(a=1, b=2, c=4, d=8)

    for key in o:
        keys.append(key)

    assert sorted(keys) == sorted(['a', 'b', 'c', 'd'])
Ejemplo n.º 16
0
def test_booleans():
    o = OpenStruct(true=True, false=False)

    assert o.true is True
    assert o.false is False
    assert o['true'] is True
    assert o['false'] is False
    assert isinstance(o.none, OpenStruct)
Ejemplo n.º 17
0
def test_types():
    d = {'a': 1, 'b': 2, 'c': 3}

    o = OpenStruct(
        a=d,
        b=OpenStruct(d)
    )
    o.n.o = 1
    o.p = d
    o.q = OpenStruct(d)

    assert isinstance(o, OpenStruct)
    assert isinstance(o.a, dict)
    assert isinstance(o.b, OpenStruct)
    assert isinstance(o.n, OpenStruct)
    assert isinstance(o.n.o, int)
    assert isinstance(o.p, dict)
    assert isinstance(o.q, OpenStruct)
Ejemplo n.º 18
0
def test_nested_struct():
    o = OpenStruct()
    o.a.b.c.d = 10

    assert o.a.b.c.d == 10
    assert o.a.b.c == {'d': 10}
    assert o.a.b == {'c': {'d': 10}}
    assert o.a == {'b': {'c': {'d': 10}}}
    assert o == {'a': {'b': {'c': {'d': 10}}}}
Ejemplo n.º 19
0
 def create_critic(self, alpha, hidden_layers):
     params = {
         'input_shape':      self.env.observation_space.shape,
         'output_shape':     self.env.action_space.shape,
         'hidden_layers':    hidden_layers
     }
     self.critic = OpenStruct()
     self.critic.online = Critic("{}.critic.online".format(self.name), **params)
     self.critic.target = Critic("{}.critic.target".format(self.name), **params)
Ejemplo n.º 20
0
 def create_actor(self, alpha, hidden_layers):
     params = {
         'input_shape':      self.env.observation_space.shape,
         'output_shape':     self.env.action_space.shape,
         'hidden_layers':    hidden_layers
     }
     self.actor = OpenStruct()
     self.actor.online = Actor("{}.actor.online".format(self.name), **params)
     self.actor.target = Actor("{}.actor.target".format(self.name), **params)
Ejemplo n.º 21
0
def test_process_tasks_src_dest_cwd(monkeypatch, mock_provisioner):
    src = '/some/local/file'
    args = 'foo --bar=True --baz'
    dest = '/some/remote/file'
    cwd = '/some/other/remote/folder'

    monkeypatch.setattr(os.path, 'isfile', lambda x: True)

    job1 = OpenStruct(src=src, args=args, dest=dest, cwd=cwd)
    task1 = OpenStruct(run=[job1.__dict__])
    list_of_tasks = [task1]

    mock_provisioner.process_tasks(list_of_tasks)

    expected_run_calls = [
        call('mkdir -p {0}'.format('/some/remote')),
        call('cd {0}; {1} {2}'.format(cwd, dest, args)),
    ]
    expected_put_calls = [call(src, dest, mode=0500, use_sudo=False)]
Ejemplo n.º 22
0
def test_delete_item():
    o = OpenStruct(a=1, b=2, c=4)

    del o['b']
    assert o == {'a': 1, 'c': 4}

    o.b.d.e = 10

    del o['b']['d']
    assert o == {'a': 1, 'c': 4, 'b': {}}
Ejemplo n.º 23
0
class UserStatusSchema(Schema):
    DEFAULT_OBJ = OpenStruct(id=User.STATUSES['active'], name='active')
    id = fields.Integer(many=False,
                        required=False,
                        allow_none=True,
                        default=DEFAULT_OBJ.id,
                        missing=DEFAULT_OBJ.id,
                        validate=[validate.OneOf(User.STATUSES.values())])
    name = fields.String(required=False,
                         allow_none=True,
                         default=DEFAULT_OBJ.name,
                         missing=DEFAULT_OBJ.name)
Ejemplo n.º 24
0
def test_types_with_dict_convert():
    d = {
        'a': 1,
        'b': '2',
        'c': True,
    }

    o = OpenStruct(dict_convert=True, d=d)

    assert isinstance(o, OpenStruct)
    assert isinstance(o.d, OpenStruct)
    assert isinstance(o.d.a, int)
    assert isinstance(o.d.b, str)
    assert isinstance(o.d.c, bool)
Ejemplo n.º 25
0
def test_delete_attr():
    o = OpenStruct(a=1, b=2, c=4)

    del o.b
    assert o == {'a': 1, 'c': 4}

    o.b.d.e = 10

    del o.b.d
    assert o == {'a': 1, 'c': 4, 'b': {}}

    del o
    with pytest.raises(NameError):
        assert o  # NoQA
Ejemplo n.º 26
0
def home():
    data = OpenStruct(status=iccp.status)

    return (template(
        """
        <h1>Status</h1>
        <li>{{status}}</li>
        <h1>Tools</h1>
        <ul>
        <li><a href="/set_v?v=2.5">Set electrode voltage to 2.5V </a> (or whatever you want, by editing the URL).</li>
        <li><a href="/set_dc?dc=50">Force duty cycle to 50%</a> (or whatever you want), turn of control loop until new electrode voltage is set.</a></li>
        <li><a href="/start_calibration">Start Calibration - Measure voltage as a function of duty cycle.</a></li>
        <li><a href="/v_for_dc_regression_plot">Show Calibration Results (Regression plot).</a></li>
        </ul>
        """, data))
Ejemplo n.º 27
0
def test_keys():
    o = OpenStruct()
    assert len(o.keys()) == 0

    o = OpenStruct(a=1, b=2, c=4)
    assert sorted(o.keys()) == sorted([
        'a',
        'b',
        'c',
    ])
Ejemplo n.º 28
0
def test_empty_struct():
    o = OpenStruct()

    assert o == {}
    assert isinstance(o, OpenStruct)
    assert isinstance(o.__dict__, dict)

    if o:
        assert False
    else:
        assert True

    if not o:
        assert True
    else:
        assert False
Ejemplo n.º 29
0
def home():
    status = "Commanded voltage is {:.3f}V. Current measured voltage is {:.3f}V. Current is {:.3f}A. Implies a resistive load of {:.3f} Ohms. dc was {:.2f}%"
    data = OpenStruct(status=status.format(ippc.cv_voltage, ippc.ms_voltage,
                                           ippc.ms_current, ippc.ms_voltage /
                                           ippc.ms_current, ippc.cv_dc))
    return (template(
        """
        <h1>{{status}}</h1>
        <h1>Tools</h1>
        <ul>
        <li>
        </li>
        <li>
        <a href="/time_series?v=2.5">Set voltage to 2.5V</a>
        </li>
        </ul>
        """, data))
Ejemplo n.º 30
0
def test_types():
    d = {'a': 1, 'b': 2, 'c': 3}

    o = OpenStruct(a=d, b=OpenStruct(d))
    o.n.o = 1
    o.p = d
    o.q = OpenStruct(d)

    assert isinstance(o, OpenStruct)
    assert isinstance(o.a, dict)
    assert isinstance(o.b, OpenStruct)
    assert isinstance(o.n, OpenStruct)
    assert isinstance(o.n.o, int)
    assert isinstance(o.p, dict)
    assert isinstance(o.q, OpenStruct)
Ejemplo n.º 31
0
def test_inheritance_types_with_dict_convert():
    d = {
        'a': 1,
        'b': '2',
        'c': True,
    }

    o = OpenStructChild2(dict_convert=True,
                         a=OpenStructChild1(d),
                         b=OpenStruct(d),
                         c=OpenStructChild2(d),
                         d=d,
                         e=OpenStructChild2(OpenStructChild1(d)))

    assert isinstance(o, OpenStructChild2)
    assert isinstance(o.a, OpenStructChild1)
    assert isinstance(o.b, OpenStruct)
    assert isinstance(o.c, OpenStructChild2)
    assert isinstance(o.d, OpenStructChild2)
    assert isinstance(o.e, OpenStructChild2)
    assert isinstance(o.d.a, int)
    assert isinstance(o.d.b, str)
    assert isinstance(o.d.c, bool)
Ejemplo n.º 32
0
def test__repr(kwargs, expected, expected2):
    o = OpenStruct(**kwargs)
    assert str(o) == expected or str(o) == expected2
Ejemplo n.º 33
0
def test_keys():
    o = OpenStruct()
    assert len(o.keys()) == 0

    o = OpenStruct(a=1, b=2, c=4)
    assert sorted(o.keys()) == sorted(['a', 'b', 'c'])
Ejemplo n.º 34
0
def test_len(value, expected):
    o = OpenStruct(value)
    assert len(o) == expected
Ejemplo n.º 35
0
def test_convert(value, expected):
    assert OpenStruct._convert(value) == expected
Ejemplo n.º 36
0
from ostruct import OpenStruct

if __name__ == '__main__':
    from minitest import *

    with test(OpenStruct):
        car = OpenStruct()
        car.make = 'Ford'
        car.model = 'Mustang'
        car.owner.name = 'John Doe'
        car.owner.age = 30
        car.must_equal( {
                'owner': {'age': 30, 'name': 'John Doe'}, 
                'make': 'Ford', 
                'model': 'Mustang'})

    with test("new"):
        car = OpenStruct({
                'owner': {'age': 31, 'name': 'John Doe'}, 
                'make': 'Ford', 
                'model': 'Mustang'})
        car.must_equal( {
                'owner': {'age': 31, 'name': 'John Doe'}, 
                'make': 'Ford', 
                'model': 'Mustang'})
Ejemplo n.º 37
0
        return {
            self.vr: [self.fw,self.ipsec],
            self.fw: [self.vr],
            self.ipsec: [self.vr]
        }

class BasicVPN(Basic):
    def __init__(self):
        Basic.__init__()
        self.vpn = DNS()

    def getNeighbor(self):
        return {
            self.vr: [self.fw,self.ipsec],
            self.fw: [self.vr],
            self.ipsec: [self.vr],
            self.vpn: [self.vr]
        }


if __name__ == '__main__':
    serivce = OpenStruct()
    nodes = []
    fakes = [("firewall","10.74.125.196"),("vrouter","10.74.124.195"),("ipsec","10.74.125.194")]
    for data in fakes:
        node = OpenStruct()
        node.vmtype = data[0]
        node.manageip = data[1]
        node.accountName = "haoyan"
        nodes.append(node)
    serivce.nodes = nodes