Esempio n. 1
0
 def test_call_requires_item_optional_present(self):
     def foo(x=1):
         return x
     context = Context()
     context.add(dict(bar='baz'), 'foo')
     result = context.call(foo, requires(item(optional('foo'), 'bar')))
     compare(result, 'baz')
Esempio n. 2
0
 def test_call_requires_item(self):
     def foo(x):
         return x
     context = Context()
     context.add(dict(bar='baz'), 'foo')
     result = context.call(foo, requires(item('foo', 'bar')))
     compare(result, 'baz')
Esempio n. 3
0
 def test_call_requires_item_optional_ContextError(self):
     def foo(x=1):
         return x
     context = Context()
     result = context.call(foo,
                           requires(item(optional('foo'), 'bar')),
                           result_type)
     compare(result, 1)
Esempio n. 4
0
    def test_call_requires_item_missing(self):
        def foo(obj):
            return obj

        context = Context()
        context.add({}, TheType)
        with ShouldRaise(ContextError("No TheType['foo'] in context")):
            context.call(foo, requires(item(TheType, 'foo')), result_type)
Esempio n. 5
0
 def test_call_requires_item_missing(self):
     def foo(obj): return obj
     context = Context()
     context.add({}, TheType)
     with ShouldRaise(ContextError(
             "No TheType['foo'] in context"
     )):
         context.call(foo, requires(item(TheType, 'foo')), result_type)
Esempio n. 6
0
    def test_call_requires_item_optional_ContextError(self):
        def foo(x=1):
            return x

        context = Context()
        result = context.call(foo, requires(item(optional('foo'), 'bar')),
                              result_type)
        compare(result, 1)
Esempio n. 7
0
 def test_call_requires_item_optional_present(self):
     def foo(x=1):
         return x
     context = Context()
     context.add(dict(bar='baz'), 'foo')
     result = context.call(foo,
                           requires(item(optional('foo'), 'bar')),
                           result_type)
     compare(result, 'baz')
Esempio n. 8
0
 def test_call_requires_item_attr(self):
     def foo(x):
         return x
     m = Mock()
     m.bar= dict(baz='bob')
     context = Context()
     context.add(m, 'foo')
     result = context.call(foo, requires(item(attr('foo', 'bar'), 'baz')))
     compare(result, 'bob')
Esempio n. 9
0
 def test_call_requires_item_attr(self):
     def foo(x):
         return x
     m = Mock()
     m.bar= dict(baz='bob')
     context = Context()
     context.add(m, 'foo')
     result = context.call(foo,
                           requires(item(attr('foo', 'bar'), 'baz')),
                           result_type)
     compare(result, 'bob')
Esempio n. 10
0
    def test_nested(self):
        class T(object):
            foo = dict(baz='bar')
        m = Mock()
        def job1():
            m.job1()
            return T()
        def job2(obj):
            m.job2(obj)
        runner = Runner()
        runner.add(job1)
        runner.add(job2, requires(item(attr(T, 'foo'), 'baz')))
        runner()

        compare([
                call.job1(),
                call.job2('bar'),
                ], m.mock_calls)
Esempio n. 11
0
 def test_item_multiple(self):
     class MyDict(dict): pass
     m = Mock()
     def job1():
         m.job1()
         obj = MyDict()
         obj['the_thing'] = dict(other_thing=m.the_thing)
         return obj
     def job2(obj):
         m.job2(obj)
     runner = Runner()
     runner.add(job1)
     runner.add(job2, requires(item(MyDict, 'the_thing', 'other_thing')))
     runner()
     compare([
             call.job1(),
             call.job2(m.the_thing),
             ], m.mock_calls)
Esempio n. 12
0
 def test_item_multiple(self):
     class MyDict(dict): pass
     m = Mock()
     def job1():
         m.job1()
         obj = MyDict()
         obj['the_thing'] = dict(other_thing=m.the_thing)
         return obj
     def job2(obj):
         m.job2(obj)
     runner = Runner()
     runner.add(job1)
     runner.add(job2, requires(item(MyDict, 'the_thing', 'other_thing')))
     runner()
     compare([
             call.job1(),
             call.job2(m.the_thing),
             ], m.mock_calls)
Esempio n. 13
0
    def test_nested(self):
        class T(object):
            foo = dict(baz='bar')
        m = Mock()
        def job1():
            m.job1()
            return T()
        def job2(obj):
            m.job2(obj)
        runner = Runner()
        runner.add(job1)
        runner.add(job2, requires(item(attr(T, 'foo'), 'baz')))
        runner()

        compare([
                call.job1(),
                call.job2('bar'),
                ], m.mock_calls)
Esempio n. 14
0
 def test_passed_missing(self):
     h = item(Type1, 'foo', 'bar')
     compare(h.process(missing), missing)
Esempio n. 15
0
 def test_missing_key(self):
     h = item(Type1, 'foo', 'bar')
     compare(h.process({}), missing)
Esempio n. 16
0
 def test_missing_obj(self):
     h = item(Type1, 'foo', 'bar')
     with ShouldRaise(TypeError):
         h.process(object())
Esempio n. 17
0
 def test_multiple(self):
     h = item(Type1, 'foo', 'bar')
     compare(repr(h), "Type1['foo']['bar']")
     compare(h.process(dict(foo=dict(bar=1))), 1)
Esempio n. 18
0
 def test_single(self):
     h = item(Type1, 'foo')
     compare(repr(h), "Type1['foo']")
     compare(h.process(dict(foo=1)), 1)
Esempio n. 19
0
 def test_bad_type(self):
     with ShouldRaise(TypeError):
         item([], 'foo', 'bar')
Esempio n. 20
0
 def test_how_instance_in_annotations(self):
     how = item('config', 'db_url')
     def foo(a: how): pass
     check_extract(foo,
                   expected_rq=requires(a=how),
                   expected_rt=None)