コード例 #1
0
    def test_dd_no_extra_calls(self):
        def bad():
            raise ValueError("shouldn't call me")

        def good():
            return 'good results'

        dd = DynamicDictLookup()
        dd['bad'] = bad
        dd['good'] = good

        ok = "string with just the {good} reference"
        # format forces __get_item__ on all key/values by default
        with pytest.raises(ValueError):
            ok.format(**dd)

        # using minimal_subdict, should fly
        assert 'good results' in ok.format(**dd.minimal_subdict(ok))
コード例 #2
0
    def test_dd_no_extra_calls(self):
        def bad():
            raise ValueError("shouldn't call me")

        def good():
            return 'good results'

        dd = DynamicDictLookup()
        dd['bad'] = bad
        dd['good'] = good

        ok = "string with just the {good} reference"
        # format forces __get_item__ on all key/values by default
        with pytest.raises(ValueError):
            ok.format(**dd)

        # using minimal_subdict, should fly
        assert 'good results' in ok.format(**dd.minimal_subdict(ok))
コード例 #3
0
    def test_dd(self):
        def f():
            return 'zzz'

        dd = DynamicDictLookup()
        dd['a'] = f
        dd['b'] = 'bbb'
        assert dd['a'] == 'zzz'
        assert dd['b'] == 'bbb'
        target = 'a {a} and b {b}'.format(**dd)
        assert dd['a'] in target
        assert dd['b'] in target
コード例 #4
0
 def test_unicode(self):
     dd = DynamicDictLookup()
     dd['u'] = '✓'
     target = 'works {u}'
     result = target.format(**dd)
     assert '✓' in result
コード例 #5
0
 def test_dd_no_key(self):
     dd = DynamicDictLookup()
     with pytest.raises(KeyError):
         dd['a']
コード例 #6
0
 def test_unicode(self):
     dd = DynamicDictLookup()
     dd['u'] = u'\u2713'
     target = u'works {u}'
     result = target.format(**dd)
     assert u'\u2713' in result