From a972f4176c6b8b0053f725358bdb3779ca82f878 Mon Sep 17 00:00:00 2001 From: Vladimir Chebotarev Date: Sat, 27 Aug 2022 23:11:45 +0300 Subject: [PATCH] Added tests. --- .github/workflows/black.yml | 22 ++++++++++++ .github/workflows/macos.yml | 61 ++++++++++++++++++++++++++++++++++ .github/workflows/ubuntu.yml | 61 ++++++++++++++++++++++++++++++++++ .github/workflows/windows.yml | 61 ++++++++++++++++++++++++++++++++++ .gitignore | 1 + README.md | 6 ++++ examples/3.png | Bin 25373 -> 40092 bytes requirements.txt | 2 +- setup.py | 6 ++++ tests.py | 42 +++++++++++++++++++++++ 10 files changed, 261 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/black.yml create mode 100644 .github/workflows/macos.yml create mode 100644 .github/workflows/ubuntu.yml create mode 100644 .github/workflows/windows.yml create mode 100644 tests.py diff --git a/.github/workflows/black.yml b/.github/workflows/black.yml new file mode 100644 index 0000000..d697d77 --- /dev/null +++ b/.github/workflows/black.yml @@ -0,0 +1,22 @@ +name: Black + +on: + push: + branches: [master] + + pull_request: + branches: [master] + +jobs: + black: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.8 + uses: actions/setup-python@v2 + with: + python-version: 3.8 + - name: Test with black + run: | + pip3 install black + black --check . diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml new file mode 100644 index 0000000..63766aa --- /dev/null +++ b/.github/workflows/macos.yml @@ -0,0 +1,61 @@ +name: OS X + +on: + push: + branches: [master] + + pull_request: + branches: [master] + +jobs: + python-37-macos: + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.7 + uses: actions/setup-python@v2 + with: + python-version: '3.7' + - name: Test with unittest + run: | + pip3 install -r requirements.txt + python3 -m unittest discover + + python-38-macos: + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.8 + uses: actions/setup-python@v2 + with: + python-version: '3.8' + - name: Test with unittest + run: | + pip3 install -r requirements.txt + python3 -m unittest discover + + python-39-macos: + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.9 + uses: actions/setup-python@v2 + with: + python-version: '3.9' + - name: Test with unittest + run: | + pip3 install -r requirements.txt + python3 -m unittest discover + + python-310-macos: + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.10 + uses: actions/setup-python@v2 + with: + python-version: '3.10' + - name: Test with unittest + run: | + pip3 install -r requirements.txt + python3 -m unittest discover diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml new file mode 100644 index 0000000..02eac20 --- /dev/null +++ b/.github/workflows/ubuntu.yml @@ -0,0 +1,61 @@ +name: Linux + +on: + push: + branches: [master] + + pull_request: + branches: [master] + +jobs: + python-37-ubuntu: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.7 + uses: actions/setup-python@v2 + with: + python-version: '3.7' + - name: Test with unittest + run: | + pip3 install -r requirements.txt + python3 -m unittest discover + + python-38-ubuntu: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.8 + uses: actions/setup-python@v2 + with: + python-version: '3.8' + - name: Test with unittest + run: | + pip3 install -r requirements.txt + python3 -m unittest discover + + python-39-ubuntu: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.9 + uses: actions/setup-python@v2 + with: + python-version: '3.9' + - name: Test with unittest + run: | + pip3 install -r requirements.txt + python3 -m unittest discover + + python-310-ubuntu: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.10 + uses: actions/setup-python@v2 + with: + python-version: '3.10' + - name: Test with unittest + run: | + pip3 install -r requirements.txt + python3 -m unittest discover diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml new file mode 100644 index 0000000..110ae3e --- /dev/null +++ b/.github/workflows/windows.yml @@ -0,0 +1,61 @@ +name: Windows + +on: + push: + branches: [master] + + pull_request: + branches: [master] + +jobs: + python-37-windows: + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.7 + uses: actions/setup-python@v2 + with: + python-version: '3.7' + - name: Test with unittest + run: | + pip3 install -r requirements.txt + python3 -m unittest discover + + python-38-windows: + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.8 + uses: actions/setup-python@v2 + with: + python-version: '3.8' + - name: Test with unittest + run: | + pip3 install -r requirements.txt + python3 -m unittest discover + + python-39-windows: + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.9 + uses: actions/setup-python@v2 + with: + python-version: '3.9' + - name: Test with unittest + run: | + pip3 install -r requirements.txt + python3 -m unittest discover + + python-310-windows: + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.10 + uses: actions/setup-python@v2 + with: + python-version: '3.10' + - name: Test with unittest + run: | + pip3 install -r requirements.txt + python3 -m unittest discover diff --git a/.gitignore b/.gitignore index 477ef06..2e9eb7f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /3_py.egg-info/ /build/ /dist/ +__pycache__/ diff --git a/README.md b/README.md index 2b0304a..08067c8 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,11 @@ # `3` +[![Black](https://github.com/excitoon/3/actions/workflows/black.yml/badge.svg)](https://github.com/excitoon/3/actions/workflows/black.yml) +[![Linux](https://github.com/excitoon/3/actions/workflows/ubuntu.yml/badge.svg)](https://github.com/excitoon/3/actions/workflows/ubuntu.yml) +[![OS X](https://github.com/excitoon/3/actions/workflows/macos.yml/badge.svg)](https://github.com/excitoon/3/actions/workflows/macos.yml) +[![Windows](https://github.com/excitoon/3/actions/workflows/windows.yml/badge.svg)](https://github.com/excitoon/3/actions/workflows/windows.yml) +[![PyPI](https://badge.fury.io/py/3-py.svg)](https://badge.fury.io/py/3-py) + `.gitignore`-aware tree tool written in Python. Example: diff --git a/examples/3.png b/examples/3.png index c617a2375eb1c270040ca8ccc149b721b43ed60a..024ad948b7ee5536204d9d051c2f09fac464880a 100644 GIT binary patch literal 40092 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Ⓢ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

>)DaUqeoi>i@c`@aWhg-E>66ER(C#b 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 diff --git a/requirements.txt b/requirements.txt index 621f71c..fd777d5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -gitignore-parser +gitignorefile diff --git a/setup.py b/setup.py index 212a606..aefbabc 100644 --- a/setup.py +++ b/setup.py @@ -19,6 +19,12 @@ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", "Topic :: Software Development", "Topic :: Terminals", "Topic :: Utilities", diff --git a/tests.py b/tests.py new file mode 100644 index 0000000..cc6766a --- /dev/null +++ b/tests.py @@ -0,0 +1,42 @@ +import os +import subprocess +import unittest +import unittest.mock + + +class Test3(unittest.TestCase): + def test_simple(self): + env = {k: v for k, v in os.environ.items() if not k.endswith("_COLORS")} + env["PYTHONUTF8"] = "1" + process = subprocess.run( + os.path.abspath("3"), + shell=True, + env=env, + stdout=subprocess.PIPE, + ) + self.assertEqual(process.returncode, 0) + self.assertEqual( + process.stdout, + """ +. +├── .github +│ └── workflows +│ ├── black.yml +│ ├── macos.yml +│ ├── ubuntu.yml +│ └── windows.yml +├── .gitignore +├── 3 +├── 3.cmd +├── examples +│ └── 3.png +├── LICENSE.md +├── pyproject.toml +├── README.md +├── requirements.txt +├── setup.py +└── tests.py + +3 directories, 14 files +""".lstrip().encode(), + )