File tree Expand file tree Collapse file tree 2 files changed +51
-12
lines changed Expand file tree Collapse file tree 2 files changed +51
-12
lines changed Original file line number Diff line number Diff line change 28
28
runs-on : ubuntu-latest
29
29
env :
30
30
IMAGE : ${{ matrix.image }}
31
- services :
32
- iris :
33
- image : ${{ matrix.image }}
34
- env :
35
- IRIS_USERNAME : sqlalchemy
36
- IRIS_PASSWORD : sqlalchemy
37
- IRIS_NAMESPACE : TEST
38
- # /irisHealth.sh is just useless
39
- options : >-
40
- --health-cmd true
41
- --health-start-period 30s
42
31
steps :
43
32
- uses : actions/checkout@v3
44
33
- name : Install requirements
49
38
pip install -e .
50
39
- name : Run Tests
51
40
run : |
52
- pytest --dburi iris://sqlalchemy:sqlalchemy@iris:1972/TEST
41
+ pytest --container ${{ matrix.image }}
53
42
54
43
deploy :
55
44
needs : test
Original file line number Diff line number Diff line change 1
1
from sqlalchemy .dialects import registry
2
2
import pytest
3
+ import time
4
+
5
+ from sqlalchemy .testing .plugin .plugin_base import pre
6
+
7
+ from testcontainers .iris import IRISContainer
3
8
4
9
registry .register ("iris.iris" , "sqlalchemy_iris.iris" , "IRISDialect_iris" )
5
10
registry .register ("iris.emb" , "sqlalchemy_iris.embedded" , "IRISDialect_emb" )
6
11
7
12
pytest .register_assert_rewrite ("sqlalchemy.testing.assertions" )
8
13
9
14
from sqlalchemy .testing .plugin .pytestplugin import * # noqa
15
+
16
+ original_pytest_addoption = pytest_addoption
17
+
18
+
19
+ def pytest_addoption (parser ):
20
+ original_pytest_addoption (parser )
21
+
22
+ group = parser .getgroup ("iris" )
23
+
24
+ group .addoption (
25
+ "--container" ,
26
+ action = "store" ,
27
+ default = None ,
28
+ type = str ,
29
+ help = "Docker image with IRIS" ,
30
+ )
31
+
32
+
33
+ @pre
34
+ def start_container (opt , file_config ):
35
+ global iris
36
+ iris = None
37
+ if not opt .container :
38
+ return
39
+ try :
40
+ print ("Starting IRIS container:" , opt .container )
41
+ iris = IRISContainer (
42
+ opt .container ,
43
+ username = "sqlalchemy" ,
44
+ password = "sqlalchemy" ,
45
+ dbname = "TEST" ,
46
+ )
47
+ iris .start ()
48
+ print ("dburi:" , iris .get_connection_url ())
49
+ opt .dburi = [iris .get_connection_url ()]
50
+ except Exception as e :
51
+ iris = None
52
+ pytest .exit ("Failed to start IRIS container" )
53
+
54
+
55
+ def pytest_unconfigure (config ):
56
+ global iris
57
+ if iris :
58
+ print ("Stopping IRIS container" )
59
+ iris .stop ()
You can’t perform that action at this time.
0 commit comments