Merge pull request #628 from betatim/bump-notebook2

[MRG] Bump notebook package version
pull/631/head
Tim Head 2019-03-24 08:09:34 +01:00 zatwierdzone przez GitHub
commit f18835fd06
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
10 zmienionych plików z 155 dodań i 152 usunięć

Wyświetl plik

@ -1,87 +1,86 @@
# AUTO GENERATED FROM environment.py-3.7.yml, DO NOT MANUALLY MODIFY
# Frozen on 2019-02-11 20:26:36 UTC
# Frozen on 2019-03-23 18:02:15 UTC
name: r2d
channels:
- conda-forge
- defaults
- conda-forge/label/broken
dependencies:
- attrs=18.2.0=py_0
- attrs=19.1.0=py_0
- backcall=0.1.0=py_0
- bleach=3.1.0=py_0
- bzip2=1.0.6=h14c3975_1002
- ca-certificates=2018.11.29=ha4d7672_0
- certifi=2018.11.29=py37_1000
- decorator=4.3.2=py_0
- ca-certificates=2019.3.9=hecc5488_0
- certifi=2019.3.9=py37_0
- decorator=4.4.0=py_0
- defusedxml=0.5.0=py_1
- entrypoints=0.3=py37_1000
- gmp=6.1.2=hf484d3e_1000
- ipykernel=5.1.0=py37h24bf2e0_1002
- ipython=7.2.0=py37h24bf2e0_1000
- ipython=7.4.0=py37h24bf2e0_0
- ipython_genutils=0.2.0=py_1
- jedi=0.13.2=py37_1000
- ipywidgets=7.4.2=py_0
- jedi=0.13.3=py37_0
- jinja2=2.10=py_1
- jsonschema=3.0.0a3=py37_1000
- jupyter_client=5.2.4=py_1
- jsonschema=3.0.1=py37_0
- jupyter_client=5.2.4=py_3
- jupyter_core=4.4.0=py_0
- jupyterlab_launcher=0.13.1=py_2
- libffi=3.2.1=hf484d3e_1005
- libgcc-ng=7.3.0=hdf63c60_0
- jupyterlab=0.35.4=py37_0
- jupyterlab_server=0.2.0=py_0
- libffi=3.2.1=he1b5a44_1006
- libsodium=1.0.16=h14c3975_1001
- libstdcxx-ng=7.3.0=hdf63c60_0
- markupsafe=1.1.0=py37h14c3975_1000
- markupsafe=1.1.1=py37h14c3975_0
- mistune=0.8.4=py37h14c3975_1000
- nbconvert=5.4.0=1
- nbconvert=5.4.1=py_2
- nbformat=4.4.0=py_1
- ncurses=6.1=hf484d3e_1002
- notebook=5.7.4=py37_1000
- openssl=1.0.2p=h14c3975_1002
- pandoc=1.19.2=0
- notebook=5.7.6=py37_0
- openssl=1.1.1b=h14c3975_1
- pandoc=2.7.1=0
- pandocfilters=1.4.2=py_1
- parso=0.3.3=py_0
- parso=0.3.4=py_0
- pexpect=4.6.0=py37_1000
- pickleshare=0.7.5=py37_1000
- pip=19.0.2=py37_0
- prometheus_client=0.5.0=py_0
- prompt_toolkit=2.0.8=py_0
- pip=19.0.3=py37_0
- prometheus_client=0.6.0=py_0
- prompt_toolkit=2.0.9=py_0
- ptyprocess=0.6.0=py37_1000
- pygments=2.3.1=py_0
- pyrsistent=0.14.10=py37h14c3975_0
- python=3.7.1=hd21baee_1000
- pyrsistent=0.14.11=py37h14c3975_0
- python=3.7.2=h381d211_0
- python-dateutil=2.8.0=py_0
- pyzmq=17.1.2=py37h6afc9c9_1001
- pyzmq=18.0.1=py37h0e1adb2_0
- readline=7.0=hf8c457e_1001
- send2trash=1.5.0=py_0
- setuptools=40.8.0=py37_0
- six=1.12.0=py37_1000
- sqlite=3.26.0=h67949de_1000
- sqlite=3.26.0=h67949de_1001
- terminado=0.8.1=py37_1001
- testpath=0.4.2=py37_1000
- testpath=0.4.2=py_1001
- tk=8.6.9=h84994c4_1000
- tornado=5.1.1=py37h14c3975_1000
- tornado=6.0.1=py37h14c3975_0
- traitlets=4.3.2=py37_1000
- wcwidth=0.1.7=py_1
- webencodings=0.5.1=py_1
- wheel=0.32.3=py37_0
- wheel=0.33.1=py37_0
- widgetsnbextension=3.4.2=py37_1000
- xz=5.2.4=h14c3975_1001
- zeromq=4.2.5=hf484d3e_1006
- zlib=1.2.11=h14c3975_1004
- ipywidgets=7.2.1=py37_0
- jupyterlab=0.34.9=py37_0
- libgcc-ng=8.2.0=hdf63c60_1
- libstdcxx-ng=8.2.0=hdf63c60_1
- pip:
- alembic==1.0.7
- alembic==1.0.8
- async-generator==1.10
- chardet==3.0.4
- idna==2.8
- jupyterhub==0.9.4
- mako==1.0.7
- mako==1.0.8
- nteract-on-jupyter==2.0.0
- pamela==1.0.0
- python-editor==1.0.4
- python-oauth2==1.1.0
- requests==2.21.0
- sqlalchemy==1.2.17
- sqlalchemy==1.3.1
- urllib3==1.24.1
prefix: /opt/conda/envs/r2d

Wyświetl plik

@ -1,5 +1,5 @@
# AUTO GENERATED FROM environment.py-2.7.yml, DO NOT MANUALLY MODIFY
# Frozen on 2019-02-11 20:20:33 UTC
# Frozen on 2019-03-23 17:59:14 UTC
name: r2d
channels:
- conda-forge
@ -9,45 +9,45 @@ dependencies:
- backports=1.0=py_2
- backports.shutil_get_terminal_size=1.0.0=py_3
- backports_abc=0.5=py_1
- ca-certificates=2018.11.29=ha4d7672_0
- certifi=2018.11.29=py27_1000
- decorator=4.3.2=py_0
- ca-certificates=2019.3.9=hecc5488_0
- certifi=2019.3.9=py27_0
- decorator=4.4.0=py_0
- enum34=1.1.6=py27_1001
- futures=3.2.0=py27_1000
- ipykernel=4.8.2=py27_0
- ipython=5.8.0=py27_0
- ipython_genutils=0.2.0=py_1
- jupyter_client=5.2.4=py_1
- jupyter_client=5.2.4=py_3
- jupyter_core=4.4.0=py_0
- libffi=3.2.1=hf484d3e_1005
- libgcc-ng=7.3.0=hdf63c60_0
- libffi=3.2.1=he1b5a44_1006
- libsodium=1.0.16=h14c3975_1001
- libstdcxx-ng=7.3.0=hdf63c60_0
- ncurses=6.1=hf484d3e_1002
- openssl=1.0.2p=h14c3975_1002
- openssl=1.1.1b=h14c3975_1
- pathlib2=2.3.3=py27_1000
- pexpect=4.6.0=py27_1000
- pickleshare=0.7.5=py27_1000
- pip=19.0.2=py27_0
- pip=19.0.3=py27_0
- prompt_toolkit=1.0.15=py_1
- ptyprocess=0.6.0=py27_1000
- pygments=2.3.1=py_0
- python=2.7.15=h938d71a_1006
- python=2.7.15=h721da81_1008
- python-dateutil=2.8.0=py_0
- pyzmq=17.1.2=py27h6afc9c9_1001
- pyzmq=18.0.1=py27h0e1adb2_0
- readline=7.0=hf8c457e_1001
- scandir=1.9.0=py27h14c3975_1000
- scandir=1.10.0=py27h14c3975_0
- setuptools=40.8.0=py27_0
- simplegeneric=0.8.1=py_1
- singledispatch=3.4.0.3=py27_1000
- six=1.12.0=py27_1000
- sqlite=3.26.0=h67949de_1000
- sqlite=3.26.0=h67949de_1001
- tk=8.6.9=h84994c4_1000
- tornado=5.1.1=py27h14c3975_1000
- traitlets=4.3.2=py27_1000
- wcwidth=0.1.7=py_1
- wheel=0.32.3=py27_0
- wheel=0.33.1=py27_0
- zeromq=4.2.5=hf484d3e_1006
- zlib=1.2.11=h14c3975_1004
- libgcc-ng=8.2.0=hdf63c60_1
- libstdcxx-ng=8.2.0=hdf63c60_1
prefix: /opt/conda/envs/r2d

Wyświetl plik

@ -75,7 +75,7 @@ dependencies:
- idna==2.7
- jupyterhub==0.9.4
- mako==1.0.7
- notebook==5.7.4
- notebook==5.7.6
- nteract-on-jupyter==1.9.6
- pamela==0.3.0
- python-editor==1.0.3

Wyświetl plik

@ -1,86 +1,85 @@
# AUTO GENERATED FROM environment.py-3.6.yml, DO NOT MANUALLY MODIFY
# Frozen on 2019-02-11 20:22:50 UTC
# Frozen on 2019-03-23 18:00:20 UTC
name: r2d
channels:
- conda-forge
- defaults
- conda-forge/label/broken
dependencies:
- attrs=18.2.0=py_0
- attrs=19.1.0=py_0
- backcall=0.1.0=py_0
- bleach=3.1.0=py_0
- ca-certificates=2018.11.29=ha4d7672_0
- certifi=2018.11.29=py36_1000
- decorator=4.3.2=py_0
- ca-certificates=2019.3.9=hecc5488_0
- certifi=2019.3.9=py36_0
- decorator=4.4.0=py_0
- defusedxml=0.5.0=py_1
- entrypoints=0.3=py36_1000
- gmp=6.1.2=hf484d3e_1000
- ipykernel=5.1.0=py36h24bf2e0_1002
- ipython=7.2.0=py36h24bf2e0_1000
- ipython=7.4.0=py36h24bf2e0_0
- ipython_genutils=0.2.0=py_1
- ipywidgets=7.2.1=py36_1
- jedi=0.13.2=py36_1000
- ipywidgets=7.4.2=py_0
- jedi=0.13.3=py36_0
- jinja2=2.10=py_1
- jsonschema=3.0.0a3=py36_1000
- jupyter_client=5.2.4=py_1
- jsonschema=3.0.1=py36_0
- jupyter_client=5.2.4=py_3
- jupyter_core=4.4.0=py_0
- jupyterlab=0.34.9=py36_0
- jupyterlab_launcher=0.13.1=py_2
- libffi=3.2.1=hf484d3e_1005
- libgcc-ng=7.3.0=hdf63c60_0
- jupyterlab=0.35.4=py36_0
- jupyterlab_server=0.2.0=py_0
- libffi=3.2.1=he1b5a44_1006
- libsodium=1.0.16=h14c3975_1001
- libstdcxx-ng=7.3.0=hdf63c60_0
- markupsafe=1.1.0=py36h14c3975_1000
- markupsafe=1.1.1=py36h14c3975_0
- mistune=0.8.4=py36h14c3975_1000
- nbconvert=5.4.0=1
- nbconvert=5.4.1=py_2
- nbformat=4.4.0=py_1
- ncurses=6.1=hf484d3e_1002
- notebook=5.7.4=py36_1000
- openssl=1.0.2p=h14c3975_1002
- pandoc=1.19.2=0
- notebook=5.7.6=py36_0
- openssl=1.1.1b=h14c3975_1
- pandoc=2.7.1=0
- pandocfilters=1.4.2=py_1
- parso=0.3.3=py_0
- parso=0.3.4=py_0
- pexpect=4.6.0=py36_1000
- pickleshare=0.7.5=py36_1000
- pip=19.0.2=py36_0
- prometheus_client=0.5.0=py_0
- prompt_toolkit=2.0.8=py_0
- pip=19.0.3=py36_0
- prometheus_client=0.6.0=py_0
- prompt_toolkit=2.0.9=py_0
- ptyprocess=0.6.0=py36_1000
- pygments=2.3.1=py_0
- pyrsistent=0.14.10=py36h14c3975_0
- python=3.6.7=hd21baee_1001
- pyrsistent=0.14.11=py36h14c3975_0
- python=3.6.7=h381d211_1004
- python-dateutil=2.8.0=py_0
- pyzmq=17.1.2=py36h6afc9c9_1001
- pyzmq=18.0.1=py36h0e1adb2_0
- readline=7.0=hf8c457e_1001
- send2trash=1.5.0=py_0
- setuptools=40.8.0=py36_0
- six=1.12.0=py36_1000
- sqlite=3.26.0=h67949de_1000
- sqlite=3.26.0=h67949de_1001
- terminado=0.8.1=py36_1001
- testpath=0.4.2=py36_1000
- testpath=0.4.2=py_1001
- tk=8.6.9=h84994c4_1000
- tornado=5.1.1=py36h14c3975_1000
- tornado=6.0.1=py36h14c3975_0
- traitlets=4.3.2=py36_1000
- wcwidth=0.1.7=py_1
- webencodings=0.5.1=py_1
- wheel=0.32.3=py36_0
- widgetsnbextension=3.2.1=py36_1
- wheel=0.33.1=py36_0
- widgetsnbextension=3.4.2=py36_1000
- xz=5.2.4=h14c3975_1001
- zeromq=4.2.5=hf484d3e_1006
- zlib=1.2.11=h14c3975_1004
- libgcc-ng=8.2.0=hdf63c60_1
- libstdcxx-ng=8.2.0=hdf63c60_1
- pip:
- alembic==1.0.7
- alembic==1.0.8
- async-generator==1.10
- chardet==3.0.4
- idna==2.8
- jupyterhub==0.9.4
- mako==1.0.7
- mako==1.0.8
- nteract-on-jupyter==2.0.0
- pamela==1.0.0
- python-editor==1.0.4
- python-oauth2==1.1.0
- requests==2.21.0
- sqlalchemy==1.2.17
- sqlalchemy==1.3.1
- urllib3==1.24.1
prefix: /opt/conda/envs/r2d

Wyświetl plik

@ -1,11 +1,11 @@
# AUTO GENERATED FROM environment.yml, DO NOT MANUALLY MODIFY
# Generated on 2019-02-11 20:22:50 UTC
# Generated on 2019-03-23 18:00:20 UTC
dependencies:
- python=3.6.*
- ipywidgets==7.2.1
- jupyterlab==0.34.9
- nbconvert==5.4.0
- notebook==5.7.4
- ipywidgets==7.4.2
- jupyterlab==0.35.4
- nbconvert==5.4.1
- notebook==5.7.6
- pip:
- nteract_on_jupyter==2.0.0
- jupyterhub==0.9.4

Wyświetl plik

@ -1,87 +1,86 @@
# AUTO GENERATED FROM environment.py-3.7.yml, DO NOT MANUALLY MODIFY
# Frozen on 2019-02-11 20:26:36 UTC
# Frozen on 2019-03-23 18:02:15 UTC
name: r2d
channels:
- conda-forge
- defaults
- conda-forge/label/broken
dependencies:
- attrs=18.2.0=py_0
- attrs=19.1.0=py_0
- backcall=0.1.0=py_0
- bleach=3.1.0=py_0
- bzip2=1.0.6=h14c3975_1002
- ca-certificates=2018.11.29=ha4d7672_0
- certifi=2018.11.29=py37_1000
- decorator=4.3.2=py_0
- ca-certificates=2019.3.9=hecc5488_0
- certifi=2019.3.9=py37_0
- decorator=4.4.0=py_0
- defusedxml=0.5.0=py_1
- entrypoints=0.3=py37_1000
- gmp=6.1.2=hf484d3e_1000
- ipykernel=5.1.0=py37h24bf2e0_1002
- ipython=7.2.0=py37h24bf2e0_1000
- ipython=7.4.0=py37h24bf2e0_0
- ipython_genutils=0.2.0=py_1
- jedi=0.13.2=py37_1000
- ipywidgets=7.4.2=py_0
- jedi=0.13.3=py37_0
- jinja2=2.10=py_1
- jsonschema=3.0.0a3=py37_1000
- jupyter_client=5.2.4=py_1
- jsonschema=3.0.1=py37_0
- jupyter_client=5.2.4=py_3
- jupyter_core=4.4.0=py_0
- jupyterlab_launcher=0.13.1=py_2
- libffi=3.2.1=hf484d3e_1005
- libgcc-ng=7.3.0=hdf63c60_0
- jupyterlab=0.35.4=py37_0
- jupyterlab_server=0.2.0=py_0
- libffi=3.2.1=he1b5a44_1006
- libsodium=1.0.16=h14c3975_1001
- libstdcxx-ng=7.3.0=hdf63c60_0
- markupsafe=1.1.0=py37h14c3975_1000
- markupsafe=1.1.1=py37h14c3975_0
- mistune=0.8.4=py37h14c3975_1000
- nbconvert=5.4.0=1
- nbconvert=5.4.1=py_2
- nbformat=4.4.0=py_1
- ncurses=6.1=hf484d3e_1002
- notebook=5.7.4=py37_1000
- openssl=1.0.2p=h14c3975_1002
- pandoc=1.19.2=0
- notebook=5.7.6=py37_0
- openssl=1.1.1b=h14c3975_1
- pandoc=2.7.1=0
- pandocfilters=1.4.2=py_1
- parso=0.3.3=py_0
- parso=0.3.4=py_0
- pexpect=4.6.0=py37_1000
- pickleshare=0.7.5=py37_1000
- pip=19.0.2=py37_0
- prometheus_client=0.5.0=py_0
- prompt_toolkit=2.0.8=py_0
- pip=19.0.3=py37_0
- prometheus_client=0.6.0=py_0
- prompt_toolkit=2.0.9=py_0
- ptyprocess=0.6.0=py37_1000
- pygments=2.3.1=py_0
- pyrsistent=0.14.10=py37h14c3975_0
- python=3.7.1=hd21baee_1000
- pyrsistent=0.14.11=py37h14c3975_0
- python=3.7.2=h381d211_0
- python-dateutil=2.8.0=py_0
- pyzmq=17.1.2=py37h6afc9c9_1001
- pyzmq=18.0.1=py37h0e1adb2_0
- readline=7.0=hf8c457e_1001
- send2trash=1.5.0=py_0
- setuptools=40.8.0=py37_0
- six=1.12.0=py37_1000
- sqlite=3.26.0=h67949de_1000
- sqlite=3.26.0=h67949de_1001
- terminado=0.8.1=py37_1001
- testpath=0.4.2=py37_1000
- testpath=0.4.2=py_1001
- tk=8.6.9=h84994c4_1000
- tornado=5.1.1=py37h14c3975_1000
- tornado=6.0.1=py37h14c3975_0
- traitlets=4.3.2=py37_1000
- wcwidth=0.1.7=py_1
- webencodings=0.5.1=py_1
- wheel=0.32.3=py37_0
- wheel=0.33.1=py37_0
- widgetsnbextension=3.4.2=py37_1000
- xz=5.2.4=h14c3975_1001
- zeromq=4.2.5=hf484d3e_1006
- zlib=1.2.11=h14c3975_1004
- ipywidgets=7.2.1=py37_0
- jupyterlab=0.34.9=py37_0
- libgcc-ng=8.2.0=hdf63c60_1
- libstdcxx-ng=8.2.0=hdf63c60_1
- pip:
- alembic==1.0.7
- alembic==1.0.8
- async-generator==1.10
- chardet==3.0.4
- idna==2.8
- jupyterhub==0.9.4
- mako==1.0.7
- mako==1.0.8
- nteract-on-jupyter==2.0.0
- pamela==1.0.0
- python-editor==1.0.4
- python-oauth2==1.1.0
- requests==2.21.0
- sqlalchemy==1.2.17
- sqlalchemy==1.3.1
- urllib3==1.24.1
prefix: /opt/conda/envs/r2d

Wyświetl plik

@ -1,11 +1,11 @@
# AUTO GENERATED FROM environment.yml, DO NOT MANUALLY MODIFY
# Generated on 2019-02-11 20:26:36 UTC
# Generated on 2019-03-23 18:02:15 UTC
dependencies:
- python=3.7.*
- ipywidgets==7.2.1
- jupyterlab==0.34.9
- nbconvert==5.4.0
- notebook==5.7.4
- ipywidgets==7.4.2
- jupyterlab==0.35.4
- nbconvert==5.4.1
- notebook==5.7.6
- pip:
- nteract_on_jupyter==2.0.0
- jupyterhub==0.9.4

Wyświetl plik

@ -1,9 +1,9 @@
dependencies:
- python=3.7.*
- ipywidgets==7.2.1
- jupyterlab==0.34.9
- nbconvert==5.4.0
- notebook==5.7.4
- ipywidgets==7.4.2
- jupyterlab==0.35.4
- nbconvert==5.4.1
- notebook==5.7.6
- pip:
- nteract_on_jupyter==2.0.0
- jupyterhub==0.9.4

Wyświetl plik

@ -46,16 +46,17 @@ def freeze(env_file, frozen_file):
Result will be stored in frozen_file
"""
frozen_dest = HERE / frozen_file
if frozen_dest.exists():
with frozen_dest.open('r') as f:
line = f.readline()
if 'GENERATED' not in line:
print(f"{frozen_file} not autogenerated, not refreezing")
print(f"{frozen_file.relative_to(HERE)} not autogenerated, not refreezing")
return
print(f"Freezing {env_file} -> {frozen_file}")
with frozen_dest.open('w') as f:
f.write(f"# AUTO GENERATED FROM {env_file}, DO NOT MANUALLY MODIFY\n")
f.write(f"# AUTO GENERATED FROM {env_file.relative_to(HERE)}, DO NOT MANUALLY MODIFY\n")
f.write(f"# Frozen on {datetime.utcnow():%Y-%m-%d %H:%M:%S UTC}\n")
check_call([
@ -67,15 +68,15 @@ def freeze(env_file, frozen_file):
f"continuumio/miniconda3:{MINICONDA_DOCKER_VERSION}",
"sh", "-c",
'; '.join([
'set -e',
'set -ex',
f"conda install -yq conda={CONDA_VERSION}",
'conda config --add channels conda-forge',
'conda config --system --set auto_update_conda false',
f"conda env create -v -f /r2d/{env_file} -n r2d",
f"conda env create -v -f /r2d/{env_file.relative_to(HERE)} -n r2d",
# add conda-forge broken channel as lowest priority in case
# any of our frozen packages are marked as broken after freezing
'conda config --append channels conda-forge/label/broken',
f"conda env export -n r2d >> /r2d/{frozen_file}",
f"conda env export -n r2d >> /r2d/{frozen_file.relative_to(HERE)}",
])
])
@ -100,7 +101,7 @@ def set_python(py_env_file, py):
raise ValueError(f"python dependency not found in {env['dependencies']}")
# update python dependency
with open(py_env_file, 'w') as f:
f.write(f"# AUTO GENERATED FROM {ENV_FILE}, DO NOT MANUALLY MODIFY\n")
f.write(f"# AUTO GENERATED FROM {ENV_FILE.relative_to(HERE)}, DO NOT MANUALLY MODIFY\n")
f.write(f"# Generated on {datetime.utcnow():%Y-%m-%d %H:%M:%S UTC}\n")
yaml.dump(env, f)
@ -109,9 +110,9 @@ if __name__ == '__main__':
# allow specifying which Pythons to update on argv
pys = sys.argv[1:] or ('2.7', '3.5', '3.6', '3.7')
for py in pys:
env_file = ENV_FILE_T.format(py=py)
env_file = pathlib.Path(str(ENV_FILE_T).format(py=py))
set_python(env_file, py)
frozen_file = os.path.splitext(env_file)[0] + '.frozen.yml'
frozen_file = pathlib.Path(os.path.splitext(env_file)[0] + '.frozen.yml')
freeze(env_file, frozen_file)
# use last version as default

Wyświetl plik

@ -3,10 +3,8 @@ import re
import tempfile
import time
from repo2docker.app import Repo2Docker
from repo2docker.__main__ import make_r2d
from conftest import make_test_func
DIR = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'dockerfile', 'editable')
@ -39,19 +37,26 @@ def test_editable_by_host():
app.initialize()
app.build()
container = app.start_container()
# give the container a chance to start
time.sleep(1)
while container.status != 'running':
time.sleep(1)
try:
with tempfile.NamedTemporaryFile(dir=DIR, prefix='testfile', suffix='.txt'):
status, output = container.exec_run(['sh', '-c', 'ls testfile????????.txt'])
assert status == 0
assert re.match(br'^testfile\w{8}\.txt\n$', output) is not None
# File should be removed in the container as well
# After exiting the with block the file should stop existing
# in the container as well as locally
status, output = container.exec_run(['sh', '-c', 'ls testfile????????.txt'])
assert status != 1
assert status == 2
assert re.match(br'^testfile\w{8}\.txt\n$', output) is None
finally:
# stop the container
container.stop()
app.wait_for_container(container)
# stop the container, we don't care how it stops or
# what the exit code is.
container.stop(timeout=1)
container.reload()
assert container.status == 'exited', container.status
container.remove()