aboutsummaryrefslogtreecommitdiff
path: root/circuitpython/tools/adabot/tests
diff options
context:
space:
mode:
authorRaghuram Subramani <raghus2247@gmail.com>2022-06-19 19:47:51 +0530
committerRaghuram Subramani <raghus2247@gmail.com>2022-06-19 19:47:51 +0530
commit4fd287655a72b9aea14cdac715ad5b90ed082ed2 (patch)
tree65d393bc0e699dd12d05b29ba568e04cea666207 /circuitpython/tools/adabot/tests
parent0150f70ce9c39e9e6dd878766c0620c85e47bed0 (diff)
add circuitpython code
Diffstat (limited to 'circuitpython/tools/adabot/tests')
-rw-r--r--circuitpython/tools/adabot/tests/integration/test_arduino_libraries.py63
-rw-r--r--circuitpython/tools/adabot/tests/integration/test_circuitpython_libraries.py70
-rw-r--r--circuitpython/tools/adabot/tests/unit/test_blinka_funcs.py32
-rw-r--r--circuitpython/tools/adabot/tests/unit/test_common_funcs.py38
-rw-r--r--circuitpython/tools/adabot/tests/unit/test_github_requests.py43
-rw-r--r--circuitpython/tools/adabot/tests/unit/test_pypi_requests.py33
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"