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 2828 runs-on : ubuntu-latest
2929 env :
3030 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
4231 steps :
4332 - uses : actions/checkout@v3
4433 - name : Install requirements
4938 pip install -e .
5039 - name : Run Tests
5140 run : |
52- pytest --dburi iris://sqlalchemy:sqlalchemy@iris:1972/TEST
41+ pytest --container ${{ matrix.image }}
5342
5443 deploy :
5544 needs : test
Original file line number Diff line number Diff line change 11from sqlalchemy .dialects import registry
22import pytest
3+ import time
4+
5+ from sqlalchemy .testing .plugin .plugin_base import pre
6+
7+ from testcontainers .iris import IRISContainer
38
49registry .register ("iris.iris" , "sqlalchemy_iris.iris" , "IRISDialect_iris" )
510registry .register ("iris.emb" , "sqlalchemy_iris.embedded" , "IRISDialect_emb" )
611
712pytest .register_assert_rewrite ("sqlalchemy.testing.assertions" )
813
914from 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