diff --git a/tests/test_dump-anydbm.py b/tests/test_dump-anydbm.py index 4d568ff..d71384e 100644 --- a/tests/test_dump-anydbm.py +++ b/tests/test_dump-anydbm.py @@ -50,6 +50,22 @@ def make_gdbm_test_db(request): request.addfinalizer(delete_test_dumbdbm) return db_name +@pytest.fixture(scope = "function") +def make_ndbm_test_db(request): + db_name = "test_ndbm" + print "creating", db_name + open(db_name+".db", 'a').close() + test_db = ndbm.open(db_name+".db", "n") + test_db['very first key'] = 'very first value' + test_db['second key'] = 'second value' + test_db.close() + def delete_test_ndbm(): + print "deleting", db_name + # os.remove(db_name+".db") + + request.addfinalizer(delete_test_ndbm) + return db_name+".db" + @pytest.fixture(scope = "function") def make_dumbdbm_test_db(request): db_name ="test_dumbdbm" @@ -67,9 +83,11 @@ def make_dumbdbm_test_db(request): request.addfinalizer(delete_test_dumbdbm) return db_name -# def test_fixture(make_ndbm_test_db): -# print "runing test_fixture with" -# assert whichdb(make_ndbm_test_db) == "dbm" + + +def test_fixture(make_ndbm_test_db): + print "runing test_fixture with" + assert whichdb(make_ndbm_test_db) == ndbm_type def test_assert_gdbm_db_is_created_and_correctly_identified(make_gdbm_test_db): print "runing assert_gdbm_db_is_created_and_correctly_identified with gdbm test file" @@ -93,6 +111,9 @@ def test_assert_reading_dumbdbm_correctly(make_dumbdbm_test_db): assert db.has_key(key1) assert db[key1] == val1 + +######################### + def test_dumpanydbm_identify_gdbm(make_gdbm_test_db): print "running test_dumpanydbm_identify_gdbm" output = subprocess.check_output(["dump-anydbm", make_gdbm_test_db]) @@ -113,6 +134,29 @@ def test_dumpanydbm_identify_gdbm(make_gdbm_test_db): assert db_dump_second_pair[0] == key2 assert db_dump_second_pair[1] == val2 +def test_dumpanydbm_identify_ndbm(make_ndbm_test_db): + print "running test_dumpanydbm_identify_ndbm" + output = subprocess.check_output(["dump-anydbm", make_ndbm_test_db]) + output = output.strip().split("\n") + + print output + + assert len(output) == 3 # 2 keys plus whichdb line + + # split on space, then grab 4th word, which is db type + which = output[0].split(' ')[3] + print which + assert which == ndbm_type + + #split remaining lines on ':' that separates key & value + db_dump_first_pair = output[1].split(':') + assert db_dump_first_pair[0] == key1 + assert db_dump_first_pair[1] == val1 + + db_dump_second_pair = output[2].split(':') + assert db_dump_second_pair[0] == key2 + assert db_dump_second_pair[1] == val2 + def test_dumpanydbm_identify_dumbdbm(make_dumbdbm_test_db): print "running test_dumpanydbm_identify_dumbdbm" output = subprocess.call(["dump-anydbm", make_dumbdbm_test_db])