diff options
| author | Raghuram Subramani <raghus2247@gmail.com> | 2022-06-19 19:47:51 +0530 |
|---|---|---|
| committer | Raghuram Subramani <raghus2247@gmail.com> | 2022-06-19 19:47:51 +0530 |
| commit | 4fd287655a72b9aea14cdac715ad5b90ed082ed2 (patch) | |
| tree | 65d393bc0e699dd12d05b29ba568e04cea666207 /circuitpython/tools/adabot/tests | |
| parent | 0150f70ce9c39e9e6dd878766c0620c85e47bed0 (diff) | |
add circuitpython code
Diffstat (limited to 'circuitpython/tools/adabot/tests')
6 files changed, 279 insertions, 0 deletions
diff --git a/circuitpython/tools/adabot/tests/integration/test_arduino_libraries.py b/circuitpython/tools/adabot/tests/integration/test_arduino_libraries.py new file mode 100644 index 0000000..2708d59 --- /dev/null +++ b/circuitpython/tools/adabot/tests/integration/test_arduino_libraries.py @@ -0,0 +1,63 @@ +# The MIT License (MIT) +# +# Copyright (c) 2021 Michael Schroeder +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +"""Integration tests for 'adabot/arduino_libraries.py'""" + +import pytest # pylint: disable=unused-import + +from adabot import arduino_libraries +from adabot import github_requests + + +def test_adafruit_libraries(monkeypatch): + """Test main arduino_libraries function, without writing an output file.""" + + def get_list_repos(): + repos = [] + repos.append(github_requests.get("/repos/adafruit/Adafruit_NeoPixel").json()) + return repos + + monkeypatch.setattr(arduino_libraries, "list_repos", get_list_repos) + + print(arduino_libraries.list_repos()) + + arduino_libraries.main() + + +# pylint: disable=invalid-name +def test_adafruit_libraries_output_file(monkeypatch, tmp_path, capsys): + """Test main arduino_libraries funciton, with writing an output file.""" + + def get_list_repos(): + repos = [] + repos.append(github_requests.get("/repos/adafruit/Adafruit_NeoPixel").json()) + return repos + + monkeypatch.setattr(arduino_libraries, "list_repos", get_list_repos) + + tmp_output_file = tmp_path / "output_test.txt" + + arduino_libraries.main(output_file=tmp_output_file) + + captured = capsys.readouterr() + + assert tmp_output_file.read_text() == captured.out diff --git a/circuitpython/tools/adabot/tests/integration/test_circuitpython_libraries.py b/circuitpython/tools/adabot/tests/integration/test_circuitpython_libraries.py new file mode 100644 index 0000000..034945e --- /dev/null +++ b/circuitpython/tools/adabot/tests/integration/test_circuitpython_libraries.py @@ -0,0 +1,70 @@ +# The MIT License (MIT) +# +# Copyright (c) 2021 Michael Schroeder +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +"""Integration tests for 'adabot/circuitpython_libraries.py'""" + +import pytest # pylint: disable=unused-import + +from adabot.lib import common_funcs +from adabot import github_requests +from adabot import circuitpython_libraries + + +def test_circuitpython_libraires(monkeypatch): + """Test main function of 'circuitpyton_libraries.py', without writing an output file.""" + # pylint: disable=unused-argument + def mock_list_repos(*args, **kwargs): + repos = [] + repos.append( + github_requests.get( + "/repos/adafruit/Adafruit_CircuitPython_TestRepo" + ).json() + ) + return repos + + monkeypatch.setattr(common_funcs, "list_repos", mock_list_repos) + + circuitpython_libraries.main(validator="all") + + +# pylint: disable=invalid-name +def test_circuitpython_libraires_output_file(monkeypatch, tmp_path, capsys): + """Test main funciton of 'circuitpython_libraries.py', with writing an output file.""" + # pylint: disable=unused-argument + def mock_list_repos(*args, **kwargs): + repos = [] + repos.append( + github_requests.get( + "/repos/adafruit/Adafruit_CircuitPython_TestRepo" + ).json() + ) + return repos + + monkeypatch.setattr(common_funcs, "list_repos", mock_list_repos) + + tmp_output_file = tmp_path / "output_test.txt" + + circuitpython_libraries.main(validator="all", output_file=tmp_output_file) + + captured = capsys.readouterr() + + assert tmp_output_file.read_text() == captured.out diff --git a/circuitpython/tools/adabot/tests/unit/test_blinka_funcs.py b/circuitpython/tools/adabot/tests/unit/test_blinka_funcs.py new file mode 100644 index 0000000..77771b0 --- /dev/null +++ b/circuitpython/tools/adabot/tests/unit/test_blinka_funcs.py @@ -0,0 +1,32 @@ +# The MIT License (MIT) +# +# Copyright (c) 2021 Michael Schroeder +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +"""Unit tests for 'adabot/lib/blinka_funcs.py'""" + +import pytest # pylint: disable=unused-import + +from adabot.lib import blinka_funcs + + +def test_board_count(): + """Test that 'board_count' returns a number.""" + assert blinka_funcs.board_count() >= 0 diff --git a/circuitpython/tools/adabot/tests/unit/test_common_funcs.py b/circuitpython/tools/adabot/tests/unit/test_common_funcs.py new file mode 100644 index 0000000..e5f2426 --- /dev/null +++ b/circuitpython/tools/adabot/tests/unit/test_common_funcs.py @@ -0,0 +1,38 @@ +# The MIT License (MIT) +# +# Copyright (c) 2021 Michael Schroeder +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +"""Unit tests for 'adabot/lib/common_funcs.py'""" + +import pytest # pylint: disable=unused-import +from adabot.lib import common_funcs + + +def test_list_repos(): + """Test that list_repos returns a list object.""" + repos = common_funcs.list_repos() + + assert isinstance(repos, list) + + +def test_repo_is_on_pypi_true(): + """Test 'repo_is_on_pypi'""" + assert common_funcs.repo_is_on_pypi({"name": "pytest"}) diff --git a/circuitpython/tools/adabot/tests/unit/test_github_requests.py b/circuitpython/tools/adabot/tests/unit/test_github_requests.py new file mode 100644 index 0000000..eb10d0f --- /dev/null +++ b/circuitpython/tools/adabot/tests/unit/test_github_requests.py @@ -0,0 +1,43 @@ +# The MIT License (MIT) +# +# Copyright (c) 2021 Michael Schroeder +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +"""Unit tests for 'adabot/github_requests.py'""" + +# pylint: disable=protected-access + +import pytest # pylint: disable=unused-import + +from adabot import github_requests + + +def test_fix_url(): + """Test URL fixing function.""" + url = github_requests._fix_url("/meta") + assert url == "https://api.github.com/meta" + + +def test_fix_kwargs(): + """Test kwarg fixing function.""" + dummy_kwargs = github_requests._fix_kwargs({}) + + assert "headers" in dummy_kwargs + assert "Accept" in dummy_kwargs["headers"] diff --git a/circuitpython/tools/adabot/tests/unit/test_pypi_requests.py b/circuitpython/tools/adabot/tests/unit/test_pypi_requests.py new file mode 100644 index 0000000..142f9f9 --- /dev/null +++ b/circuitpython/tools/adabot/tests/unit/test_pypi_requests.py @@ -0,0 +1,33 @@ +# The MIT License (MIT) +# +# Copyright (c) 2021 Michael Schroeder +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +"""Unit tests for 'adabot/pypi_requests.py'""" + +import pytest # pylint: disable=unused-import + +from adabot import pypi_requests + + +def test_fix_url(): + """Test URL fixing function.""" + url = pypi_requests._fix_url("/test") # pylint: disable=protected-access + assert url == "https://pypi.org/test" |
