def test_id_dict_generate_id(): d = IdDict() d.add("a") assert len(d) == 1 assert "a" in d.values() d.add("a") assert len(d) == 2
def test_id_dict_is_cautious_about_ids(): tmp = {1: 2, 2: 3} d = IdDict(tmp) assert len(d) == 2 d.add("a") assert len(d) == 3 d.add("a") assert len(d) == 4
def test_id_dict_refuse_to_reuse_ids(): d = IdDict() d[0] = "a" d.add("b") assert len(d) == 2 assert_raises(KeyError, lambda: d.add("c", 0))
def test_id_dict_raise_error_if_key_is_not_int(): d = IdDict() assert_raises(KeyError, lambda: d.__setitem__("a", None)) assert_raises(KeyError, lambda: d.setdefault("a", None)) assert_raises(KeyError, lambda: d.add("a", "key"))