##// END OF EJS Templates
Merge pull request #13318 from Kojoley/ghactions-windows...
Matthias Bussonnier -
r27130:7eea0e20 merge
parent child Browse files
Show More
@@ -1,59 +1,60
1 1 name: Run tests
2 2
3 3 on:
4 4 push:
5 5 pull_request:
6 6 # Run weekly on Monday at 1:23 UTC
7 7 schedule:
8 8 - cron: '23 1 * * 1'
9 9 workflow_dispatch:
10 10
11 11
12 12 jobs:
13 13 test:
14 14 runs-on: ${{ matrix.os }}
15 15 strategy:
16 16 matrix:
17 os: [ubuntu-latest]
17 os: [ubuntu-latest, windows-latest]
18 18 python-version: ["3.7", "3.8", "3.9", "3.10"]
19 19 deps: [test_extra]
20 20 # Test all on ubuntu, test ends on macos
21 21 include:
22 22 - os: macos-latest
23 23 python-version: "3.7"
24 24 deps: test_extra
25 25 - os: macos-latest
26 26 python-version: "3.10"
27 27 deps: test_extra
28 28 # Tests minimal dependencies set
29 29 - os: ubuntu-latest
30 30 python-version: "3.10"
31 31 deps: test
32 32 # Tests latest development Python version
33 33 - os: ubuntu-latest
34 34 python-version: "3.11-dev"
35 35 deps: test
36 36
37 37 steps:
38 38 - uses: actions/checkout@v2
39 39 - name: Set up Python ${{ matrix.python-version }}
40 40 uses: actions/setup-python@v2
41 41 with:
42 42 python-version: ${{ matrix.python-version }}
43 43 - name: Install latex
44 44 if: runner.os == 'Linux' && matrix.deps == 'test_extra'
45 45 run: sudo apt-get -yq -o Acquire::Retries=3 --no-install-suggests --no-install-recommends install texlive dvipng
46 46 - name: Install and update Python dependencies
47 47 run: |
48 48 python -m pip install --upgrade pip setuptools wheel
49 49 python -m pip install --upgrade -e .[${{ matrix.deps }}]
50 50 python -m pip install --upgrade check-manifest pytest-cov
51 51 - name: Check manifest
52 if: runner.os != 'Windows' # setup.py does not support sdist on Windows
52 53 run: check-manifest
53 54 - name: pytest
54 55 env:
55 56 COLUMNS: 120
56 57 run: |
57 pytest --color=yes -v --cov --cov-report=xml
58 pytest --color=yes -ra -v --cov --cov-report=xml
58 59 - name: Upload coverage to Codecov
59 60 uses: codecov/codecov-action@v2
@@ -1,65 +1,66
1 1 import tempfile, os
2 from pathlib import Path
2 3
3 4 from traitlets.config.loader import Config
4 5
5 6
6 7 def setup_module():
7 8 ip.magic('load_ext storemagic')
8 9
9 10 def test_store_restore():
10 11 assert 'bar' not in ip.user_ns, "Error: some other test leaked `bar` in user_ns"
11 12 assert 'foo' not in ip.user_ns, "Error: some other test leaked `foo` in user_ns"
12 13 assert 'foobar' not in ip.user_ns, "Error: some other test leaked `foobar` in user_ns"
13 14 assert 'foobaz' not in ip.user_ns, "Error: some other test leaked `foobaz` in user_ns"
14 15 ip.user_ns['foo'] = 78
15 16 ip.magic('alias bar echo "hello"')
16 17 ip.user_ns['foobar'] = 79
17 18 ip.user_ns['foobaz'] = '80'
18 19 tmpd = tempfile.mkdtemp()
19 20 ip.magic('cd ' + tmpd)
20 21 ip.magic('store foo')
21 22 ip.magic('store bar')
22 23 ip.magic('store foobar foobaz')
23 24
24 25 # Check storing
25 26 assert ip.db["autorestore/foo"] == 78
26 27 assert "bar" in ip.db["stored_aliases"]
27 28 assert ip.db["autorestore/foobar"] == 79
28 29 assert ip.db["autorestore/foobaz"] == "80"
29 30
30 31 # Remove those items
31 32 ip.user_ns.pop('foo', None)
32 33 ip.user_ns.pop('foobar', None)
33 34 ip.user_ns.pop('foobaz', None)
34 35 ip.alias_manager.undefine_alias('bar')
35 36 ip.magic('cd -')
36 37 ip.user_ns['_dh'][:] = []
37 38
38 39 # Check restoring
39 40 ip.magic("store -r foo bar foobar foobaz")
40 41 assert ip.user_ns["foo"] == 78
41 42 assert ip.alias_manager.is_alias("bar")
42 43 assert ip.user_ns["foobar"] == 79
43 44 assert ip.user_ns["foobaz"] == "80"
44 45
45 46 ip.magic("store -r") # restores _dh too
46 assert os.path.realpath(tmpd) in ip.user_ns["_dh"]
47 assert any(Path(tmpd).samefile(p) for p in ip.user_ns["_dh"])
47 48
48 49 os.rmdir(tmpd)
49 50
50 51 def test_autorestore():
51 52 ip.user_ns['foo'] = 95
52 53 ip.magic('store foo')
53 54 del ip.user_ns['foo']
54 55 c = Config()
55 56 c.StoreMagics.autorestore = False
56 57 orig_config = ip.config
57 58 try:
58 59 ip.config = c
59 60 ip.extension_manager.reload_extension("storemagic")
60 61 assert "foo" not in ip.user_ns
61 62 c.StoreMagics.autorestore = True
62 63 ip.extension_manager.reload_extension("storemagic")
63 64 assert ip.user_ns["foo"] == 95
64 65 finally:
65 66 ip.config = orig_config
@@ -1,29 +1,29
1 1 #-----------------------------------------------------------------------------
2 2 # Copyright (C) 2012- The IPython Development Team
3 3 #
4 4 # Distributed under the terms of the BSD License. The full license is in
5 5 # the file COPYING, distributed as part of this software.
6 6 #-----------------------------------------------------------------------------
7 7
8 8 from pathlib import Path
9 9
10 10 from IPython.utils.tempdir import NamedFileInTemporaryDirectory
11 11 from IPython.utils.tempdir import TemporaryWorkingDirectory
12 12
13 13
14 14 def test_named_file_in_temporary_directory():
15 15 with NamedFileInTemporaryDirectory('filename') as file:
16 16 name = file.name
17 17 assert not file.closed
18 18 assert Path(name).exists()
19 19 file.write(b'test')
20 20 assert file.closed
21 21 assert not Path(name).exists()
22 22
23 23 def test_temporary_working_directory():
24 24 with TemporaryWorkingDirectory() as directory:
25 directory_path = Path(directory)
25 directory_path = Path(directory).resolve()
26 26 assert directory_path.exists()
27 assert Path.cwd() == directory_path.resolve()
27 assert Path.cwd().resolve() == directory_path
28 28 assert not directory_path.exists()
29 assert Path.cwd() != directory_path.resolve()
29 assert Path.cwd().resolve() != directory_path
@@ -1,40 +1,28
1 1 build: false
2 2 matrix:
3 3 fast_finish: true # immediately finish build once one of the jobs fails.
4 4
5 5 environment:
6 6 global:
7 7 APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
8 8 COLUMNS: 120 # Appveyor web viwer window width is 130 chars
9 9
10 10 matrix:
11 11
12 - PYTHON: "C:\\Python310-x64"
13 PYTHON_VERSION: "3.10.x"
14 PYTHON_ARCH: "64"
15
16 - PYTHON: "C:\\Python37-x64"
17 PYTHON_VERSION: "3.7.x"
18 PYTHON_ARCH: "64"
19
20 12 - PYTHON: "C:\\Python38"
21 13 PYTHON_VERSION: "3.8.x"
22 14 PYTHON_ARCH: "32"
23 15
24 - PYTHON: "C:\\Python38-x64"
25 PYTHON_VERSION: "3.8.x"
26 PYTHON_ARCH: "64"
27
28 16 init:
29 17 - "ECHO %PYTHON% %PYTHON_VERSION% %PYTHON_ARCH%"
30 18
31 19 install:
32 20 - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
33 21 - python -m pip install --upgrade setuptools pip
34 22 - pip install pytest-cov
35 23 - pip install -e .[test_extra]
36 24 test_script:
37 25 - pytest --color=yes -ra --cov --cov-report=xml
38 26 on_finish:
39 27 - curl -Os https://uploader.codecov.io/latest/windows/codecov.exe
40 28 - codecov -e PYTHON_VERSION,PYTHON_ARCH
General Comments 0
You need to be logged in to leave comments. Login now