Beispiel #1
0
def test_defaultdict_basic():
    d1 = webhelpers_containers_defaultdict()
    eq_(d1.default_factory, None)
    d1.default_factory = list
    d1[12].append(42)
    eq_(d1, {12: [42]})
    d1[12].append(24)
    eq_(d1, {12: [42, 24]})
    d1[13]
    d1[14]
    eq_(d1, {12: [42, 24], 13: [], 14: []})
    assert d1[12] is not d1[13] is not d1[14]
    d2 = webhelpers_containers_defaultdict(list, foo=1, bar=2)
    eq_(d2.default_factory, list)
    eq_(d2, {"foo": 1, "bar": 2})
    eq_(d2["foo"], 1)
    eq_(d2["bar"], 2)
    eq_(d2[42], [])
    assert "foo" in d2
    assert "foo" in d2.keys()
    assert "bar" in d2
    assert "bar" in d2.keys()
    assert 42 in d2
    assert 42 in d2.keys()
    assert 12 not in d2
    assert 12 not in d2.keys()
    d2.default_factory = None
    eq_(d2.default_factory, None)
    try:
        d2[15]
    except KeyError, err:
        eq_(err.args, (15, ))
def test_defaultdict_basic():
    d1 = webhelpers_containers_defaultdict()
    eq_(d1.default_factory, None)
    d1.default_factory = list
    d1[12].append(42)
    eq_(d1, {12: [42]})
    d1[12].append(24)
    eq_(d1, {12: [42, 24]})
    d1[13]
    d1[14]
    eq_(d1, {12: [42, 24], 13: [], 14: []})
    assert d1[12] is not d1[13] is not d1[14]
    d2 = webhelpers_containers_defaultdict(list, foo=1, bar=2)
    eq_(d2.default_factory, list)
    eq_(d2, {"foo": 1, "bar": 2})
    eq_(d2["foo"], 1)
    eq_(d2["bar"], 2)
    eq_(d2[42], [])
    assert "foo" in d2
    assert "foo" in d2.keys()
    assert "bar" in d2
    assert "bar" in d2.keys()
    assert 42 in d2
    assert 42 in d2.keys()
    assert 12 not in d2
    assert 12 not in d2.keys()
    d2.default_factory = None
    eq_(d2.default_factory, None)
    try:
        d2[15]
    except KeyError, err:
        eq_(err.args, (15,))
def test_defaultdict_repr_2():
    def foo():
        return 43
    d3 = webhelpers_containers_defaultdict(foo)
    assert d3.default_factory is foo
    d3[13]
    eq_(repr(d3), "defaultdict(%s, {13: 43})" % repr(foo))
Beispiel #4
0
def test_defaultdict_repr_2():
    def foo():
        return 43

    d3 = webhelpers_containers_defaultdict(foo)
    assert d3.default_factory is foo
    d3[13]
    eq_(repr(d3), "defaultdict(%s, {13: 43})" % repr(foo))
def test_defaultdict_shallow_copy():
    d1 = webhelpers_containers_defaultdict(foobar, {1: 1})
    d2 = copy.copy(d1)
    eq_(d2.default_factory, foobar)
    eq_(d2, d1)
    d1.default_factory = list
    d2 = copy.copy(d1)
    eq_(d2.default_factory, list)
    eq_(d2, d1)
Beispiel #6
0
def test_defaultdict_shallow_copy():
    d1 = webhelpers_containers_defaultdict(foobar, {1: 1})
    d2 = copy.copy(d1)
    eq_(d2.default_factory, foobar)
    eq_(d2, d1)
    d1.default_factory = list
    d2 = copy.copy(d1)
    eq_(d2.default_factory, list)
    eq_(d2, d1)
def test_defaultdict_missing():
    d1 = webhelpers_containers_defaultdict()
    try:
        d1.__missing__(42)
    except KeyError:
        pass
    else:
        raise AssertionError("d1.__missing__ did not raise KeyError")
    d1.default_factory = list
    eq_(d1.__missing__(42), [])
Beispiel #8
0
def test_defaultdict_missing():
    d1 = webhelpers_containers_defaultdict()
    try:
        d1.__missing__(42)
    except KeyError:
        pass
    else:
        raise AssertionError("d1.__missing__ did not raise KeyError")
    d1.default_factory = list
    eq_(d1.__missing__(42), [])
Beispiel #9
0
def test_defaultdict_deep_copy():
    d1 = webhelpers_containers_defaultdict(foobar, {1: [1]})
    d2 = copy.deepcopy(d1)
    eq_(d2.default_factory, foobar)
    eq_(d2, d1)
    assert d1[1] is not d2[1]
    d1.default_factory = list
    d2 = copy.deepcopy(d1)
    eq_(d2.default_factory, list)
    eq_(d2, d1)
def test_defaultdict_deep_copy():
    d1 = webhelpers_containers_defaultdict(foobar, {1: [1]})
    d2 = copy.deepcopy(d1)
    eq_(d2.default_factory, foobar)
    eq_(d2, d1)
    assert d1[1] is not d2[1]
    d1.default_factory = list
    d2 = copy.deepcopy(d1)
    eq_(d2.default_factory, list)
    eq_(d2, d1)
Beispiel #11
0
def test_defaultdict_print():
    d1 = webhelpers_containers_defaultdict()
    def foo(): return 42
    d2 = webhelpers_containers_defaultdict(foo, {1: 2})
    # NOTE: We can't use tempfile.[Named]TemporaryFile since this
    # code must exercise the tp_print C code, which only gets
    # invoked for *real* files.
    tfn = tempfile.mktemp()
    try:
        f = open(tfn, "w+")
        try:
            print >>f, d1
            print >>f, d2
            f.seek(0)
            assert_equal(f.readline(), repr(d1) + "\n")
            assert_equal(f.readline(), repr(d2) + "\n")
        finally:
            f.close()
    finally:
        os.remove(tfn)
Beispiel #12
0
def test_defaultdict_print():
    d1 = webhelpers_containers_defaultdict()

    def foo():
        return 42

    d2 = webhelpers_containers_defaultdict(foo, {1: 2})
    # NOTE: We can't use tempfile.[Named]TemporaryFile since this
    # code must exercise the tp_print C code, which only gets
    # invoked for *real* files.
    tfn = tempfile.mktemp()
    try:
        f = open(tfn, "w+")
        try:
            print >> f, d1
            print >> f, d2
            f.seek(0)
            eq_(f.readline(), repr(d1) + "\n")
            eq_(f.readline(), repr(d2) + "\n")
        finally:
            f.close()
    finally:
        os.remove(tfn)
def test_defaultdict_copy():
    d1 = webhelpers_containers_defaultdict()
    d2 = d1.copy()
    eq_(type(d2), webhelpers_containers_defaultdict)
    eq_(d2.default_factory, None)
    eq_(d2, {})
    d1.default_factory = list
    d3 = d1.copy()
    eq_(type(d3), webhelpers_containers_defaultdict)
    eq_(d3.default_factory, list)
    eq_(d3, {})
    d1[42]
    d4 = d1.copy()
    eq_(type(d4), webhelpers_containers_defaultdict)
    eq_(d4.default_factory, list)
    eq_(d4, {42: []})
    d4[12]
    eq_(d4, {42: [], 12: []})
Beispiel #14
0
def test_defaultdict_copy():
    d1 = webhelpers_containers_defaultdict()
    d2 = d1.copy()
    eq_(type(d2), webhelpers_containers_defaultdict)
    eq_(d2.default_factory, None)
    eq_(d2, {})
    d1.default_factory = list
    d3 = d1.copy()
    eq_(type(d3), webhelpers_containers_defaultdict)
    eq_(d3.default_factory, list)
    eq_(d3, {})
    d1[42]
    d4 = d1.copy()
    eq_(type(d4), webhelpers_containers_defaultdict)
    eq_(d4.default_factory, list)
    eq_(d4, {42: []})
    d4[12]
    eq_(d4, {42: [], 12: []})
Beispiel #15
0
def test_defaultdict_repr():
    d1 = webhelpers_containers_defaultdict()
    assert_equal(d1.default_factory, None)
    assert_equal(repr(d1), "defaultdict(None, {})")
    d1[11] = 41
    assert_equal(repr(d1), "defaultdict(None, {11: 41})")
Beispiel #16
0
def test_defaultdict_repr():
    d1 = webhelpers_containers_defaultdict()
    eq_(d1.default_factory, None)
    eq_(repr(d1), "defaultdict(None, {})")
    d1[11] = 41
    eq_(repr(d1), "defaultdict(None, {11: 41})")
def test_defaultdict_repr():
    d1 = webhelpers_containers_defaultdict()
    eq_(d1.default_factory, None)
    eq_(repr(d1), "defaultdict(None, {})")
    d1[11] = 41
    eq_(repr(d1), "defaultdict(None, {11: 41})")
Beispiel #18
0
def test_defaultdict_missing():
    d1 = webhelpers_containers_defaultdict()
    assert_raises(KeyError, d1.__missing__, 42)
    d1.default_factory = list
    assert_equal(d1.__missing__(42), [])