def t(v=None, f=None): if v is None: v = '' if f is None: f = '' s = '{' + str(v) + ':{' + str(f) + '}}' return M.FormatString(s)
def test_text(): fmt = M.FormatString('eggs{}bacon{}spam') assert_equal(len(fmt), 5) fmt = list(fmt) assert_equal(fmt[0], 'eggs') assert_equal(fmt[2], 'bacon') assert_equal(fmt[4], 'spam')
def t(self, s, *types): fmt = M.FormatString(s) assert_equal(len(fmt), len(types)) assert_equal(len(fmt.argument_map), len(types)) for (key, args), (xkey, xtype) in zip(sorted(fmt.argument_map.items()), enumerate(types)): [arg] = args assert_equal(key, xkey) assert_equal(arg.types, frozenset({xtype.__name__}))
def t(self, k, *types): types = frozenset(tp.__name__ for tp in types) fmt = M.FormatString('{:' + k + '}') [fld] = fmt assert_is_instance(fld, M.Field) assert_equal(fld.types, types) assert_equal(len(fmt.argument_map), 1) [(key, [afld])] = fmt.argument_map.items() assert_equal(key, 0) assert_is(fld, afld)
def t(i): s = '{}' * i M.FormatString(s)
def t(c, k): M.FormatString('{:' + c + k + '}')
def test_invalid_field(): with assert_raises(M.Error): M.FormatString('{@}')
def test_add_argument(): fmt = M.FormatString('{}') with assert_raises(RuntimeError): fmt.add_argument(None, None) with assert_raises(RuntimeError): fmt.add_argument('eggs', None)
def test_good(self): fmt = M.FormatString('{spam}') [fld] = fmt [(aname, [afld])] = fmt.argument_map.items() assert_equal(aname, 'spam') assert_is(fld, afld)
def test_lone_rcb(): with assert_raises(M.Error): M.FormatString('}')
def t(w, k): if k == '\0': k = '' M.FormatString('{:.' + str(w) + k + '}')
def t(k1, k2): s = '{0:' + k1 + '}{0:' + k2 + '}' M.FormatString(s)
def t(i): s = ('{' + str(i) + '}') M.FormatString(s)
def t(k): M.FormatString('{:,' + k + '}')
def test_bad_letter(self): with assert_raises(M.Error): M.FormatString('{:Z}')
def test_bad_char(self): with assert_raises(M.Error): M.FormatString('{:@}')
def test_bad(self): with assert_raises(M.Error): M.FormatString('{3ggs}')