コード例 #1
0
ファイル: test_context.py プロジェクト: curiousTauseef/mush
 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')
コード例 #2
0
ファイル: test_context.py プロジェクト: curiousTauseef/mush
 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')
コード例 #3
0
ファイル: test_context.py プロジェクト: Simplistix/mush
 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)
コード例 #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)
コード例 #5
0
ファイル: test_context.py プロジェクト: Simplistix/mush
 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)
コード例 #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)
コード例 #7
0
ファイル: test_context.py プロジェクト: Simplistix/mush
 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')
コード例 #8
0
ファイル: test_context.py プロジェクト: curiousTauseef/mush
 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')
コード例 #9
0
ファイル: test_context.py プロジェクト: Simplistix/mush
 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')
コード例 #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)
コード例 #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)
コード例 #12
0
ファイル: test_runner.py プロジェクト: Simplistix/mush
 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)
コード例 #13
0
ファイル: test_runner.py プロジェクト: Simplistix/mush
    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)
コード例 #14
0
ファイル: test_declarations.py プロジェクト: asqui/mush
 def test_passed_missing(self):
     h = item(Type1, 'foo', 'bar')
     compare(h.process(missing), missing)
コード例 #15
0
ファイル: test_declarations.py プロジェクト: asqui/mush
 def test_missing_key(self):
     h = item(Type1, 'foo', 'bar')
     compare(h.process({}), missing)
コード例 #16
0
ファイル: test_declarations.py プロジェクト: asqui/mush
 def test_missing_obj(self):
     h = item(Type1, 'foo', 'bar')
     with ShouldRaise(TypeError):
         h.process(object())
コード例 #17
0
ファイル: test_declarations.py プロジェクト: asqui/mush
 def test_multiple(self):
     h = item(Type1, 'foo', 'bar')
     compare(repr(h), "Type1['foo']['bar']")
     compare(h.process(dict(foo=dict(bar=1))), 1)
コード例 #18
0
ファイル: test_declarations.py プロジェクト: asqui/mush
 def test_single(self):
     h = item(Type1, 'foo')
     compare(repr(h), "Type1['foo']")
     compare(h.process(dict(foo=1)), 1)
コード例 #19
0
ファイル: test_declarations.py プロジェクト: asqui/mush
 def test_bad_type(self):
     with ShouldRaise(TypeError):
         item([], 'foo', 'bar')
コード例 #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)