Skip to content

Commit 4d0b1e7

Browse files
committed
Drop pipenv and use requirements for each version.
1 parent 4e7db7d commit 4d0b1e7

File tree

10 files changed

+342
-910
lines changed

10 files changed

+342
-910
lines changed

.travis.yml

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
sudo: required
2-
dist: trusty
2+
dist: xenial
33

44
services:
55
- docker
6+
- xvfb
67

78
addons:
89
chrome: "stable"
@@ -11,19 +12,15 @@ language: python
1112
python:
1213
- "3.5"
1314
- "3.6"
14-
15-
before_install:
16-
- export DISPLAY=:99.0
17-
- sh -e /etc/init.d/xvfb start
18-
- "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16"
15+
- "3.7"
16+
- "3.8"
1917

2018
install:
21-
- pip install pipenv
19+
- pip install -r requirements/$TRAVIS_PYTHON_VERSION.txt
2220

2321
script:
24-
- pipenv install --dev
25-
- pipenv run flake8
26-
- pipenv run py.test -sv --cov-config .coveragerc --cov-report html:skip-covered --cov-report term:skip-covered --cov=testcontainers --tb=short tests/
22+
- flake8
23+
- py.test -sv --cov-config .coveragerc --cov-report html:skip-covered --cov-report term:skip-covered --cov=testcontainers --tb=short tests/
2724
- codecov
2825

2926
notifications:

Dockerfile

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
FROM python:3.6
1+
ARG version=3.8
2+
FROM python:${version}
23

3-
COPY ./Pipfile* /workspace/
44
WORKDIR /workspace
5-
6-
RUN pip install pipenv && \
7-
pipenv install --system --dev --deploy
8-
9-
COPY . /workspace
5+
ARG version=3.8
6+
COPY requirements/${version}.txt requirements.txt
7+
COPY setup.py README.md ./
8+
RUN pip install -r requirements.txt
9+
COPY . .

Makefile

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
PYTHON_VERSIONS = 3.5 3.6 3.7 3.8
2+
REQUIREMENTS = $(addprefix requirements/,${PYTHON_VERSIONS:=.txt})
3+
TESTS = $(addprefix tests/,${PYTHON_VERSIONS})
4+
IMAGES = $(addprefix image/,${PYTHON_VERSIONS})
5+
RUN = docker run --rm -it
6+
7+
# Default target
8+
9+
default : tests/3.8
10+
11+
12+
# Targets to build requirement files
13+
14+
requirements : ${REQUIREMENTS}
15+
16+
${REQUIREMENTS} : requirements/%.txt : requirements.in setup.py
17+
mkdir -p $(dir $@)
18+
${RUN} -w /workspace -v `pwd`:/workspace python:$* bash -c \
19+
"pip install pip-tools && pip-compile -v -o $@ $<"
20+
21+
22+
# Targets to build docker images
23+
24+
images : ${IMAGES}
25+
26+
${IMAGES} : image/% : requirements/%.txt
27+
docker build --build-arg version=$* -t testcontainers-python:$* .
28+
29+
30+
# Targets to run tests in docker containers
31+
32+
tests : ${TESTS}
33+
34+
${TESTS} : tests/% : image/%
35+
${RUN} -v /var/run/docker.sock:/var/run/docker.sock testcontainers-python:$* bash -c \
36+
"flake8 && pytest -v ${ARGS}"

Pipfile

Lines changed: 0 additions & 25 deletions
This file was deleted.

Pipfile.lock

Lines changed: 0 additions & 868 deletions
This file was deleted.

requirements.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
-e file:.[docker-compose,mysql,oracle,postgresql,selenium,google-cloud-pubsub,mongo]
2+
codecov
3+
flake8
4+
pytest
5+
pytest-cov

requirements/3.5.txt

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
#
2+
# This file is autogenerated by pip-compile
3+
# To update, run:
4+
#
5+
# pip-compile --output-file=requirements/3.5.txt requirements.in
6+
#
7+
-e file:.
8+
attrs==19.3.0 # via jsonschema, pytest
9+
bcrypt==3.1.7 # via paramiko
10+
blindspin==2.0.1
11+
cached-property==1.5.1 # via docker-compose
12+
cachetools==4.0.0 # via google-auth
13+
certifi==2019.11.28 # via requests
14+
cffi==1.14.0 # via bcrypt, cryptography, pynacl
15+
chardet==3.0.4 # via requests
16+
codecov==2.0.15
17+
colorama==0.4.3 # via crayons
18+
coverage==5.0.3 # via codecov, pytest-cov
19+
crayons==0.3.0
20+
cryptography==2.8 # via paramiko
21+
cx-oracle==7.3.0
22+
docker-compose==1.25.4
23+
docker[ssh]==4.2.0 # via docker-compose
24+
dockerpty==0.4.1 # via docker-compose
25+
docopt==0.6.2 # via docker-compose
26+
entrypoints==0.3 # via flake8
27+
flake8==3.7.9
28+
google-api-core[grpc]==1.16.0 # via google-cloud-pubsub
29+
google-auth==1.11.2 # via google-api-core
30+
google-cloud-pubsub==1.2.0
31+
googleapis-common-protos[grpc]==1.51.0 # via google-api-core, grpc-google-iam-v1
32+
grpc-google-iam-v1==0.12.3 # via google-cloud-pubsub
33+
grpcio==1.27.2 # via google-api-core, googleapis-common-protos, grpc-google-iam-v1
34+
idna==2.9 # via requests
35+
importlib-metadata==1.5.0 # via jsonschema, pluggy, pytest
36+
jsonschema==3.2.0 # via docker-compose
37+
mccabe==0.6.1 # via flake8
38+
more-itertools==8.2.0 # via pytest
39+
packaging==20.1 # via pytest
40+
paramiko==2.7.1 # via docker
41+
pathlib2==2.3.5 # via pytest
42+
pluggy==0.13.1 # via pytest
43+
protobuf==3.11.3 # via google-api-core, googleapis-common-protos
44+
psycopg2-binary==2.8.4
45+
py==1.8.1 # via pytest
46+
pyasn1-modules==0.2.8 # via google-auth
47+
pyasn1==0.4.8 # via pyasn1-modules, rsa
48+
pycodestyle==2.5.0 # via flake8
49+
pycparser==2.19 # via cffi
50+
pyflakes==2.1.1 # via flake8
51+
pymongo==3.10.1
52+
pymysql==0.9.3
53+
pynacl==1.3.0 # via paramiko
54+
pyparsing==2.4.6 # via packaging
55+
pyrsistent==0.15.7 # via jsonschema
56+
pytest-cov==2.8.1
57+
pytest==5.3.5
58+
pytz==2019.3 # via google-api-core
59+
pyyaml==5.3 # via docker-compose
60+
requests==2.23.0 # via codecov, docker, docker-compose, google-api-core
61+
rsa==4.0 # via google-auth
62+
selenium==3.141.0
63+
six==1.14.0 # via bcrypt, cryptography, docker, docker-compose, dockerpty, google-api-core, google-auth, grpcio, jsonschema, packaging, pathlib2, protobuf, pynacl, pyrsistent, websocket-client
64+
sqlalchemy==1.3.13
65+
texttable==1.6.2 # via docker-compose
66+
urllib3==1.25.8 # via requests, selenium
67+
wcwidth==0.1.8 # via pytest
68+
websocket-client==0.57.0 # via docker, docker-compose
69+
wrapt==1.12.0
70+
zipp==1.2.0 # via importlib-metadata
71+
72+
# The following packages are considered to be unsafe in a requirements file:
73+
# setuptools

requirements/3.6.txt

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
#
2+
# This file is autogenerated by pip-compile
3+
# To update, run:
4+
#
5+
# pip-compile --output-file=requirements/3.6.txt requirements.in
6+
#
7+
-e file:.
8+
attrs==19.3.0 # via jsonschema, pytest
9+
bcrypt==3.1.7 # via paramiko
10+
blindspin==2.0.1
11+
cached-property==1.5.1 # via docker-compose
12+
cachetools==4.0.0 # via google-auth
13+
certifi==2019.11.28 # via requests
14+
cffi==1.14.0 # via bcrypt, cryptography, pynacl
15+
chardet==3.0.4 # via requests
16+
codecov==2.0.15
17+
colorama==0.4.3 # via crayons
18+
coverage==5.0.3 # via codecov, pytest-cov
19+
crayons==0.3.0
20+
cryptography==2.8 # via paramiko
21+
cx-oracle==7.3.0
22+
docker-compose==1.25.4
23+
docker[ssh]==4.2.0 # via docker-compose
24+
dockerpty==0.4.1 # via docker-compose
25+
docopt==0.6.2 # via docker-compose
26+
entrypoints==0.3 # via flake8
27+
flake8==3.7.9
28+
google-api-core[grpc]==1.16.0 # via google-cloud-pubsub
29+
google-auth==1.11.2 # via google-api-core
30+
google-cloud-pubsub==1.2.0
31+
googleapis-common-protos[grpc]==1.51.0 # via google-api-core, grpc-google-iam-v1
32+
grpc-google-iam-v1==0.12.3 # via google-cloud-pubsub
33+
grpcio==1.27.2 # via google-api-core, googleapis-common-protos, grpc-google-iam-v1
34+
idna==2.9 # via requests
35+
importlib-metadata==1.5.0 # via jsonschema, pluggy, pytest
36+
jsonschema==3.2.0 # via docker-compose
37+
mccabe==0.6.1 # via flake8
38+
more-itertools==8.2.0 # via pytest
39+
packaging==20.1 # via pytest
40+
paramiko==2.7.1 # via docker
41+
pluggy==0.13.1 # via pytest
42+
protobuf==3.11.3 # via google-api-core, googleapis-common-protos
43+
psycopg2-binary==2.8.4
44+
py==1.8.1 # via pytest
45+
pyasn1-modules==0.2.8 # via google-auth
46+
pyasn1==0.4.8 # via pyasn1-modules, rsa
47+
pycodestyle==2.5.0 # via flake8
48+
pycparser==2.19 # via cffi
49+
pyflakes==2.1.1 # via flake8
50+
pymongo==3.10.1
51+
pymysql==0.9.3
52+
pynacl==1.3.0 # via paramiko
53+
pyparsing==2.4.6 # via packaging
54+
pyrsistent==0.15.7 # via jsonschema
55+
pytest-cov==2.8.1
56+
pytest==5.3.5
57+
pytz==2019.3 # via google-api-core
58+
pyyaml==5.3 # via docker-compose
59+
requests==2.23.0 # via codecov, docker, docker-compose, google-api-core
60+
rsa==4.0 # via google-auth
61+
selenium==3.141.0
62+
six==1.14.0 # via bcrypt, cryptography, docker, docker-compose, dockerpty, google-api-core, google-auth, grpcio, jsonschema, packaging, protobuf, pynacl, pyrsistent, websocket-client
63+
sqlalchemy==1.3.13
64+
texttable==1.6.2 # via docker-compose
65+
urllib3==1.25.8 # via requests, selenium
66+
wcwidth==0.1.8 # via pytest
67+
websocket-client==0.57.0 # via docker, docker-compose
68+
wrapt==1.12.0
69+
zipp==3.0.0 # via importlib-metadata
70+
71+
# The following packages are considered to be unsafe in a requirements file:
72+
# setuptools

requirements/3.7.txt

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
#
2+
# This file is autogenerated by pip-compile
3+
# To update, run:
4+
#
5+
# pip-compile --output-file=requirements/3.7.txt requirements.in
6+
#
7+
-e file:.
8+
attrs==19.3.0 # via jsonschema, pytest
9+
bcrypt==3.1.7 # via paramiko
10+
blindspin==2.0.1
11+
cached-property==1.5.1 # via docker-compose
12+
cachetools==4.0.0 # via google-auth
13+
certifi==2019.11.28 # via requests
14+
cffi==1.14.0 # via bcrypt, cryptography, pynacl
15+
chardet==3.0.4 # via requests
16+
codecov==2.0.15
17+
colorama==0.4.3 # via crayons
18+
coverage==5.0.3 # via codecov, pytest-cov
19+
crayons==0.3.0
20+
cryptography==2.8 # via paramiko
21+
cx-oracle==7.3.0
22+
docker-compose==1.25.4
23+
docker[ssh]==4.2.0 # via docker-compose
24+
dockerpty==0.4.1 # via docker-compose
25+
docopt==0.6.2 # via docker-compose
26+
entrypoints==0.3 # via flake8
27+
flake8==3.7.9
28+
google-api-core[grpc]==1.16.0 # via google-cloud-pubsub
29+
google-auth==1.11.2 # via google-api-core
30+
google-cloud-pubsub==1.2.0
31+
googleapis-common-protos[grpc]==1.51.0 # via google-api-core, grpc-google-iam-v1
32+
grpc-google-iam-v1==0.12.3 # via google-cloud-pubsub
33+
grpcio==1.27.2 # via google-api-core, googleapis-common-protos, grpc-google-iam-v1
34+
idna==2.9 # via requests
35+
importlib-metadata==1.5.0 # via jsonschema, pluggy, pytest
36+
jsonschema==3.2.0 # via docker-compose
37+
mccabe==0.6.1 # via flake8
38+
more-itertools==8.2.0 # via pytest
39+
packaging==20.1 # via pytest
40+
paramiko==2.7.1 # via docker
41+
pluggy==0.13.1 # via pytest
42+
protobuf==3.11.3 # via google-api-core, googleapis-common-protos
43+
psycopg2-binary==2.8.4
44+
py==1.8.1 # via pytest
45+
pyasn1-modules==0.2.8 # via google-auth
46+
pyasn1==0.4.8 # via pyasn1-modules, rsa
47+
pycodestyle==2.5.0 # via flake8
48+
pycparser==2.19 # via cffi
49+
pyflakes==2.1.1 # via flake8
50+
pymongo==3.10.1
51+
pymysql==0.9.3
52+
pynacl==1.3.0 # via paramiko
53+
pyparsing==2.4.6 # via packaging
54+
pyrsistent==0.15.7 # via jsonschema
55+
pytest-cov==2.8.1
56+
pytest==5.3.5
57+
pytz==2019.3 # via google-api-core
58+
pyyaml==5.3 # via docker-compose
59+
requests==2.23.0 # via codecov, docker, docker-compose, google-api-core
60+
rsa==4.0 # via google-auth
61+
selenium==3.141.0
62+
six==1.14.0 # via bcrypt, cryptography, docker, docker-compose, dockerpty, google-api-core, google-auth, grpcio, jsonschema, packaging, protobuf, pynacl, pyrsistent, websocket-client
63+
sqlalchemy==1.3.13
64+
texttable==1.6.2 # via docker-compose
65+
urllib3==1.25.8 # via requests, selenium
66+
wcwidth==0.1.8 # via pytest
67+
websocket-client==0.57.0 # via docker, docker-compose
68+
wrapt==1.12.0
69+
zipp==3.0.0 # via importlib-metadata
70+
71+
# The following packages are considered to be unsafe in a requirements file:
72+
# setuptools

0 commit comments

Comments
 (0)