Skip to content

Commit 67196f9

Browse files
CI testing refactor (#149)
1 parent 0c8a24a commit 67196f9

File tree

5 files changed

+128
-20
lines changed

5 files changed

+128
-20
lines changed

.github/workflows/unit_tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
- name: Run unit tests
3434
env:
3535
SURREALDB_URL: "http://localhost:8000"
36-
run: export PYTHONPATH="./src" && python -m unittest discover -s tests
36+
run: export DOCKER_RUN="TRUE" && export PYTHONPATH="./src" && python -m unittest discover -s tests
3737

3838

3939

tests/unit_tests/connections/invalidate/test_async_http.py

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from unittest import main, IsolatedAsyncioTestCase
2-
2+
import os
33
from surrealdb.connections.async_http import AsyncHttpSurrealConnection
44

55

@@ -15,11 +15,17 @@ async def asyncSetUp(self):
1515
}
1616
self.database_name = "test_db"
1717
self.namespace = "test_ns"
18+
self.main_connection = AsyncHttpSurrealConnection(self.url)
19+
_ = await self.main_connection.signin(self.vars_params)
20+
_ = await self.main_connection.use(namespace=self.namespace, database=self.database_name)
21+
await self.main_connection.query("DELETE user;")
22+
_ = await self.main_connection.query_raw("CREATE user:jaime SET name = 'Jaime';")
23+
1824
self.connection = AsyncHttpSurrealConnection(self.url)
1925
_ = await self.connection.signin(self.vars_params)
2026
_ = await self.connection.use(namespace=self.namespace, database=self.database_name)
2127

22-
async def test_invalidate(self):
28+
async def running_through_docker(self):
2329
_ = await self.connection.invalidate()
2430
with self.assertRaises(Exception) as context:
2531
_ = await self.connection.query("CREATE user:jaime SET name = 'Jaime';")
@@ -28,6 +34,27 @@ async def test_invalidate(self):
2834
True
2935
)
3036

37+
async def running_through_binary(self):
38+
outcome = await self.connection.query("SELECT * FROM user;")
39+
self.assertEqual(1, len(outcome))
40+
outcome = await self.main_connection.query("SELECT * FROM user;")
41+
self.assertEqual(1, len(outcome))
42+
43+
_ = await self.connection.invalidate()
44+
45+
outcome = await self.connection.query("SELECT * FROM user;")
46+
self.assertEqual(0, len(outcome))
47+
outcome = await self.main_connection.query("SELECT * FROM user;")
48+
self.assertEqual(1, len(outcome))
49+
50+
await self.main_connection.query("DELETE user;")
51+
52+
async def test_invalidate(self):
53+
if os.environ.get("DOCKER_RUN") == "TRUE":
54+
await self.running_through_docker()
55+
else:
56+
await self.running_through_binary()
57+
3158

3259
if __name__ == "__main__":
3360
main()

tests/unit_tests/connections/invalidate/test_async_ws.py

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from unittest import main, IsolatedAsyncioTestCase
2-
2+
import os
33
from surrealdb.connections.async_ws import AsyncWsSurrealConnection
44

55

@@ -15,20 +15,45 @@ async def asyncSetUp(self):
1515
}
1616
self.database_name = "test_db"
1717
self.namespace = "test_ns"
18+
self.main_connection = AsyncWsSurrealConnection(self.url)
19+
_ = await self.main_connection.signin(self.vars_params)
20+
_ = await self.main_connection.use(namespace=self.namespace, database=self.database_name)
21+
await self.main_connection.query("DELETE user;")
22+
_ = await self.main_connection.query_raw("CREATE user:jaime SET name = 'Jaime';")
23+
1824
self.connection = AsyncWsSurrealConnection(self.url)
1925
_ = await self.connection.signin(self.vars_params)
2026
_ = await self.connection.use(namespace=self.namespace, database=self.database_name)
2127

22-
async def test_invalidate(self):
28+
async def running_through_docker(self):
2329
_ = await self.connection.invalidate()
2430
with self.assertRaises(Exception) as context:
2531
_ = await self.connection.query("CREATE user:jaime SET name = 'Jaime';")
2632
self.assertEqual(
2733
"IAM error: Not enough permissions" in str(context.exception),
2834
True
2935
)
30-
await self.connection.socket.close()
3136

37+
async def running_through_binary(self):
38+
outcome = await self.connection.query("SELECT * FROM user;")
39+
self.assertEqual(1, len(outcome))
40+
outcome = await self.main_connection.query("SELECT * FROM user;")
41+
self.assertEqual(1, len(outcome))
42+
43+
_ = await self.connection.invalidate()
44+
45+
outcome = await self.connection.query("SELECT * FROM user;")
46+
self.assertEqual(0, len(outcome))
47+
outcome = await self.main_connection.query("SELECT * FROM user;")
48+
self.assertEqual(1, len(outcome))
49+
50+
await self.main_connection.query("DELETE user;")
51+
52+
async def test_invalidate(self):
53+
if os.environ.get("DOCKER_RUN") == "TRUE":
54+
await self.running_through_docker()
55+
else:
56+
await self.running_through_binary()
3257

3358

3459
if __name__ == "__main__":

tests/unit_tests/connections/invalidate/test_blocking_http.py

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from unittest import main, TestCase
2-
2+
import os
33
from surrealdb.connections.blocking_http import BlockingHttpSurrealConnection
44

55

@@ -15,11 +15,17 @@ def setUp(self):
1515
}
1616
self.database_name = "test_db"
1717
self.namespace = "test_ns"
18+
self.main_connection = BlockingHttpSurrealConnection(self.url)
19+
_ = self.main_connection.signin(self.vars_params)
20+
_ = self.main_connection.use(namespace=self.namespace, database=self.database_name)
21+
self.main_connection.query("DELETE user;")
22+
_ = self.main_connection.query_raw("CREATE user:jaime SET name = 'Jaime';")
23+
1824
self.connection = BlockingHttpSurrealConnection(self.url)
1925
_ = self.connection.signin(self.vars_params)
2026
_ = self.connection.use(namespace=self.namespace, database=self.database_name)
2127

22-
def test_invalidate(self):
28+
def running_through_docker(self):
2329
_ = self.connection.invalidate()
2430
with self.assertRaises(Exception) as context:
2531
_ = self.connection.query("CREATE user:jaime SET name = 'Jaime';")
@@ -28,6 +34,27 @@ def test_invalidate(self):
2834
True
2935
)
3036

37+
def running_through_binary(self):
38+
outcome = self.connection.query("SELECT * FROM user;")
39+
self.assertEqual(1, len(outcome))
40+
outcome = self.main_connection.query("SELECT * FROM user;")
41+
self.assertEqual(1, len(outcome))
42+
43+
_ = self.connection.invalidate()
44+
45+
outcome = self.connection.query("SELECT * FROM user;")
46+
self.assertEqual(0, len(outcome))
47+
outcome = self.main_connection.query("SELECT * FROM user;")
48+
self.assertEqual(1, len(outcome))
49+
50+
self.main_connection.query("DELETE user;")
51+
52+
def test_invalidate(self):
53+
if os.environ.get("DOCKER_RUN") == "TRUE":
54+
self.running_through_docker()
55+
else:
56+
self.running_through_binary()
57+
3158

3259
if __name__ == "__main__":
3360
main()

tests/unit_tests/connections/invalidate/test_blocking_ws.py

Lines changed: 41 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
from unittest import main, IsolatedAsyncioTestCase
1+
from unittest import main, TestCase
2+
import os
3+
from surrealdb.connections.blocking_ws import BlockingWsSurrealConnection
24

3-
from surrealdb.connections.async_ws import AsyncWsSurrealConnection
45

6+
class TestAsyncWsSurrealConnection(TestCase):
57

6-
class TestAsyncWsSurrealConnection(IsolatedAsyncioTestCase):
7-
8-
async def asyncSetUp(self):
8+
def setUp(self):
99
self.url = "ws://localhost:8000"
1010
self.password = "root"
1111
self.username = "root"
@@ -15,20 +15,49 @@ async def asyncSetUp(self):
1515
}
1616
self.database_name = "test_db"
1717
self.namespace = "test_ns"
18-
self.connection = AsyncWsSurrealConnection(self.url)
19-
_ = await self.connection.signin(self.vars_params)
20-
_ = await self.connection.use(namespace=self.namespace, database=self.database_name)
18+
self.main_connection = BlockingWsSurrealConnection(self.url)
19+
_ = self.main_connection.signin(self.vars_params)
20+
_ = self.main_connection.use(namespace=self.namespace, database=self.database_name)
21+
self.main_connection.query("DELETE user;")
22+
_ = self.main_connection.query_raw("CREATE user:jaime SET name = 'Jaime';")
23+
24+
self.connection = BlockingWsSurrealConnection(self.url)
25+
_ = self.connection.signin(self.vars_params)
26+
_ = self.connection.use(namespace=self.namespace, database=self.database_name)
27+
28+
def running_through_binary(self):
29+
outcome = self.connection.query("SELECT * FROM user;")
30+
self.assertEqual(1, len(outcome))
31+
outcome = self.main_connection.query("SELECT * FROM user;")
32+
self.assertEqual(1, len(outcome))
33+
34+
_ = self.connection.invalidate()
35+
36+
outcome = self.connection.query("SELECT * FROM user;")
37+
self.assertEqual(0, len(outcome))
38+
outcome = self.main_connection.query("SELECT * FROM user;")
39+
self.assertEqual(1, len(outcome))
40+
41+
self.main_connection.query("DELETE user;")
42+
self.main_connection.close()
43+
self.connection.close()
2144

22-
async def test_invalidate(self):
23-
_ = await self.connection.invalidate()
45+
def running_through_docker(self):
46+
_ = self.connection.invalidate()
2447
with self.assertRaises(Exception) as context:
25-
_ = await self.connection.query("CREATE user:jaime SET name = 'Jaime';")
48+
_ = self.connection.query("CREATE user:jaime SET name = 'Jaime';")
2649
self.assertEqual(
2750
"IAM error: Not enough permissions" in str(context.exception),
2851
True
2952
)
30-
await self.connection.socket.close()
53+
self.main_connection.close()
54+
self.connection.close()
3155

56+
def test_invalidate(self):
57+
if os.environ.get("DOCKER_RUN") == "TRUE":
58+
self.running_through_docker()
59+
else:
60+
self.running_through_binary()
3261

3362

3463
if __name__ == "__main__":

0 commit comments

Comments
 (0)