示例#1
0
def test_manual_id_resets_sequence():
    datamap = DataMap()

    datamap.add_entry(25, create_test_entry_en('test1'))
    new_entry = datamap.insert(create_test_entry_en('test2'))

    assert new_entry.id > 25, "new id should have been higher"
示例#2
0
def test_save_split_data_map_symmetric(writer):
    basedata = DataMap()
    basedata.add_entry(1, create_entry_en('test1'))
    basedata.add_entry(2, create_entry_en('test2'))

    extdata = DataMap()
    extdata.add_entry(1, {
        'name': {
            'en': 'test1'
        },
        'key': 'f1',
        'data': 'test1'
    })
    extdata.add_entry(2, {
        'name': {
            'en': 'test2'
        },
        'key': 'f2',
        'data': 'test2'
    })

    writer.save_split_data_map('split', basedata, extdata, 'key')
    new_data = writer.load_split_data_map(basedata, 'split')

    assert dict(extdata) == dict(new_data), "expected data to match"
示例#3
0
def test_save_base_symmetric(writer):
    data = DataMap()
    data.add_entry(1, create_entry_en('test1'))
    data.add_entry(2, create_entry_en('test2'))

    writer.save_base_map('testbase.json', data)
    new_data = writer.load_base_map('testbase.json')

    assert dict(data) == dict(new_data), "saved data didn't match"
示例#4
0
def test_can_iterate_values_in_order():
    expected_entries = [(1, create_test_entry_en('test1')),
                        (2, create_test_entry_en("test2")),
                        (3, create_test_entry_en("test3"))]

    map = DataMap()
    for (id, entry) in expected_entries:
        map.add_entry(id, entry)

    found = [(id, entry) for (id, entry) in map.items()]
    assert found == expected_entries, "Expected map entries to match"
示例#5
0
def test_set_value_after_item():
    test_keys = ['test1', 'test2', 'test3', 'test4']
    test_dict = {k: 1 for k in test_keys}
    test_dict['name'] = {'en': 'a test'}  # required field

    datamap = DataMap()
    entry = datamap.add_entry(1, test_dict)

    entry.set_value('NEW', 1, after='test2')

    # note: name exists because it was manually added to test_dict
    expected_keys = ['test1', 'test2', 'NEW', 'test3', 'test4', 'name']
    entry_keys = list(entry.keys())
    assert entry_keys == expected_keys, "Expected new to be after test2"
示例#6
0
def test_can_lookup_entry_by_name():
    map = DataMap()
    map.insert(create_test_entry_en("test1"))
    map.insert(create_test_entry_en("test2"))
    map.insert(create_test_entry_en("test3"))

    entry = map.entry_of("en", "test2")
    assert entry.name('en') == 'test2', "expected entry name to match"
示例#7
0
def test_can_lookup_id_by_name():
    map = DataMap()
    map.add_entry(1, create_test_entry_en("test1"))
    map.add_entry(2, create_test_entry_en("test2"))
    map.add_entry(3, create_test_entry_en("test3"))

    idval = map.id_of("en", "test2")
    assert idval == 2, "expected test 2 to have id 1"
示例#8
0
def test_save_data_map_symmetric(writer):
    basedata = DataMap()
    basedata.add_entry(1, create_entry_en('test1'))
    basedata.add_entry(2, create_entry_en('test2'))

    extdata = DataMap()
    extdata.add_entry(1, {'name': {'en': 'test1'}, 'data': 'test1'})
    extdata.add_entry(2, {'name': {'en': 'test2'}, 'data': 'test2'})

    writer.save_data_map('testdatasym.json', extdata, root=basedata)
    new_data = writer.load_data_map(basedata, 'testdatasym.json')

    assert dict(extdata) == dict(new_data), "expected data to match"
示例#9
0
def test_can_lookup_by_id():
    map = DataMap()
    map.add_entry(55, create_test_entry_en("test1"))
    map.add_entry(1, create_test_entry_en("test2"))
    map.add_entry(8, create_test_entry_en("test3"))

    found = map[1]  # note: id order is not sequential
    assert found.name('en') == "test2", "found name should match"
示例#10
0
def test_add_entries_adds_length():
    map = DataMap()
    map.insert(create_test_entry_en("test1"))
    map.insert(create_test_entry_en("test2"))
    assert len(map) == 2, "expected 2 entries to exist"
示例#11
0
def test_starts_with_zero_length():
    map = DataMap()
    assert not len(map), "Expected empty map"