diff --git a/pyproject.toml b/pyproject.toml index 9015729..9c47b51 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,6 +27,7 @@ dev = [ "pytest-dependency", "commitizen", "flit", + "Faker", ] docs = [ "mkdocs", diff --git a/tests/test_insert.py b/tests/test_all.py similarity index 58% rename from tests/test_insert.py rename to tests/test_all.py index 49075e0..7ddfca7 100644 --- a/tests/test_insert.py +++ b/tests/test_all.py @@ -1,9 +1,12 @@ import asyncio import pytest - +from faker import Faker from sirqle.query import Config, Query +fake = Faker() + + config = Config( url="127.0.0.1:9120", namespace="test", @@ -25,9 +28,9 @@ def event_loop(): class TestInsert: data = { - "name": "SurrealDB", - "founded": "2021-09-10", - "founders": ["tobie", "jaime"], + "name": fake.company(), + "founded": fake.date(), + "founders": [fake.name(), fake.name()], "tags": ["big data", "database"], } @@ -41,17 +44,16 @@ async def test_insert(self): table_name = "company" insert_query.insert(table_name, values=self.data) res = await insert_query.execute() - res = res[0]["result"] assert res[0]["id"].split(":")[0] == table_name.split(" ")[0] assert res[0]["name"] == self.data["name"] - assert res[0]["founded"] == "2021-09-10T00:00:00Z" + assert res[0]["founded"] == self.data["founded"] assert res[0]["name"] == self.data["name"] class TestInsertSQL: table_name = "person" - data = tuple(["John", "SurrealDB", "2021-09-10"]) - SQL = "INSERT INTO company (name, founded) VALUES ('SurrealDB', '2021-09-10');" + data = tuple([fake.name(), fake.company(), fake.date()]) + SQL = "INSERT INTO company (name, founded) VALUES ('Company 2', '2021-09-10');" @pytest.mark.asyncio async def test_insert_sql(self): @@ -63,28 +65,27 @@ async def test_insert_sql(self): table_name = f"{self.table_name} (name, company, founded)" insert_query.insert(table_name, values=self.data) res = await insert_query.execute() - res = res[0]["result"] - assert res[0]["company"] == "SurrealDB" - assert res[0]["founded"] == "2021-09-10T00:00:00Z" - assert res[0]["name"] == "John" + self.id = res[0]["id"] + assert res[0]["name"] == self.data[0] + assert res[0]["company"] == self.data[1] + assert res[0]["founded"] == self.data[2] @pytest.mark.asyncio @pytest.mark.dependency(on=["test_insert_sql"]) async def test_select(self): """Test the functionality of INSERT by looking in the database.""" query = Query(config=config) - query.select("*").from_(self.table_name) + query.select().from_(self.table_name) res = await query.execute() - res = res[0]["result"] - assert res[0]["company"] == self.data[1] - assert res[0]["founded"] == "2021-09-10T00:00:00Z" assert res[0]["name"] == self.data[0] + assert res[0]["company"] == self.data[1] + assert res[0]["founded"] == self.data[2] class TestInsertValue: table = "company" table_name = f"{table} (name, founded)" - data = tuple(["SurrealDB", "2021-09-10"]) + data = tuple([fake.company(), fake.date()]) @pytest.mark.asyncio async def test_insert_value(self): @@ -95,17 +96,43 @@ async def test_insert_value(self): insert_query = Query(config=config) insert_query.insert(self.table_name, values=self.data) res = await insert_query.execute() - res = res[0]["result"] - assert res[0]["name"] == "SurrealDB" - assert res[0]["founded"] == "2021-09-10T00:00:00Z" + assert res[0]["name"] == self.data[0] + assert res[0]["founded"] == self.data[1] @pytest.mark.asyncio @pytest.mark.dependency(on=["test_insert_value"]) - async def test_select2(self): + async def test_select(self): """Test the functionality of INSERT by looking in the database.""" query = Query(config=config) query.select("*").from_(self.table) res = await query.execute() - res = res[0]["result"] - assert res[0]["name"] == "SurrealDB" - assert res[0]["founded"] == "2021-09-10T00:00:00Z" + assert res[0]["name"] == self.data[0] + assert res[0]["founded"] == self.data[1] + + +class TestCreate: + data = { + "name": fake.name(), + "company": fake.company(), + "skills": ["Rust", "Go", "JavaScript"], + } + table_name = "person" + + @pytest.mark.asyncio + async def test_create(self): + """Test the functionality of CREATE. + + Create an entry in the database. + """ + create_query = Query(config=config) + create_query.create(self.table_name).content(self.data) + await create_query.execute() + + @pytest.mark.asyncio + @pytest.mark.dependency(on=["test_create"]) + async def test_select(self): + """Test the functionality of CREATE by looking in the database.""" + query = Query(config=config) + query.select(list(self.data.keys())).from_(self.table_name) + res = await query.execute() + assert res[0] == self.data diff --git a/tests/test_create.py b/tests/test_create.py deleted file mode 100644 index 07c3ba4..0000000 --- a/tests/test_create.py +++ /dev/null @@ -1,47 +0,0 @@ -import asyncio - -import pytest - -from sirqle.query import Config, Query - -config = Config(env_file=".db_conf") - - -@pytest.fixture(scope="session") -def event_loop(): - try: - loop = asyncio.get_running_loop() - except RuntimeError: - loop = asyncio.new_event_loop() - yield loop - loop.close() - - -class TestCreate: - data = { - "name": "Tobie", - "company": "SurrealDB", - "skills": ["Rust", "Go", "JavaScript"], - } - table_name = "person" - - @pytest.mark.asyncio - async def test_create(self): - """Test the functionality of CREATE. - - Create an entry in the database. - """ - create_query = Query(config=config) - create_query.create(self.table_name).content(self.data) - res = await create_query.execute() - res = res[0]["result"] - - @pytest.mark.asyncio - @pytest.mark.dependency(on=["test_create"]) - async def test_select(self): - """Test the functionality of CREATE by looking in the database.""" - query = Query(config=config) - query.select(list(self.data.keys())).from_(self.table_name) - res = await query.execute() - res = res[0]["result"] - assert res[0] == self.data