def test_happy_path(docker_url): # create client client = WOQLClient(docker_url) assert not client._connected # test connect client.connect() assert client._connected # test create db client.create_database("test_happy_path", prefixes={"doc": "foo://"}) init_commit = client._get_current_commit() assert client._db == "test_happy_path" assert "test_happy_path" in client.list_databases() assert client._context.get("doc") == "foo://" assert len(client.get_commit_history()) == 1 # test adding doctype WOQLQuery().doctype("Station").execute(client) first_commit = client._get_current_commit() assert first_commit != init_commit commit_history = client.get_commit_history() assert len(commit_history) == 2 assert len(client.get_commit_history(2)) == 2 assert len(client.get_commit_history(1)) == 1 assert len(client.get_commit_history(0)) == 1 assert commit_history[0]["commit"] == first_commit.split("_")[-1] assert commit_history[1]["commit"] == init_commit.split("_")[-1] client.delete_database("test_happy_path", "admin") assert client._db is None assert "test_happy_path" not in client.list_databases()
def test_happy_carzy_path(docker_url): # create client client = WOQLClient(docker_url) assert not client._connected # test connect client.connect() assert client._connected # test create db client.create_database("test happy path") init_commit = client._get_current_commit() assert client.db == "test happy path" assert "test happy path" in client.list_databases() # assert client._context.get("doc") == "foo://" assert len(client.get_commit_history()) == 1 # test adding something client.query(WOQLQuery().add_quad("a", "rdf:type", "sys:Class", "schema")) first_commit = client._get_current_commit() assert first_commit != init_commit assert len(client.get_commit_history()) == 1 client.query(WOQLQuery().add_quad("b", "rdf:type", "sys:Class", "schema")) commit_history = client.get_commit_history() assert client._get_target_commit(1) == first_commit assert len(client.get_commit_history()) == 2 # test reset client.reset(commit_history[-1]["commit"]) assert client._get_current_commit() == first_commit client.create_branch("New Branch") client.rebase("New Branch") client.delete_database("test happy path", "admin") assert client.db is None assert "test happy path" not in client.list_databases()
def test_csv_handeling(docker_url): client = WOQLClient(docker_url) assert not client._connected # test connect client.connect() assert client._connected # test create db client.create_database("test_csv") client._get_current_commit() assert client._db == "test_csv" assert "test_csv" in client.list_databases() csv_file_path = _generate_csv() # create testing csv try: client.insert_csv(csv_file_path) client.get_csv(csv_file_path, csv_output_name="new_" + csv_file_path) assert filecmp.cmp(csv_file_path, "new_" + csv_file_path) finally: _file_clean_up(csv_file_path) _file_clean_up("new_" + csv_file_path)
def test_happy_path(docker_url): # create client client = WOQLClient(docker_url) assert not client._connected # test connect client.connect() assert client._connected # test create db client.create_database("test_happy_path") init_commit = client._get_current_commit() assert client._db == "test_happy_path" assert "test_happy_path" in client.list_databases() # test adding doctype WOQLQuery().doctype("Station").execute(client) assert client._commit_made == 1 first_commit = client._get_current_commit() assert first_commit != init_commit # test rollback client.rollback() assert client._commit_made == 0 # back to squre 1 assert client._get_current_commit() == init_commit # test rollback twice WOQLQuery().doctype("Station").execute(client) WOQLQuery().doctype("Journey").execute(client) assert client._commit_made == 2 second_commit = client._get_current_commit() assert second_commit != init_commit client.rollback(2) assert client._commit_made == 0 # back to squre 1 assert client._get_current_commit() == init_commit # test rollback too much WOQLQuery().doctype("Station").execute(client) assert client._commit_made == 1 with pytest.raises(ValueError): client.rollback(2) client.delete_database("test_happy_path", "admin") assert client._db is None assert "test_happy_path" not in client.list_databases()