suppress errors and warnings in unit tests

Credits to @mateuslatrova for the contribution.
This commit is contained in:
fernandocrz 2023-12-04 16:27:50 -03:00 committed by Alan Barzilay
parent aa283ada00
commit 03c92488de

View File

@ -9,18 +9,28 @@ Tests for `pipreqs` module.
""" """
from io import StringIO from io import StringIO
import logging
from unittest.mock import patch from unittest.mock import patch
import unittest import unittest
import os import os
import requests import requests
import sys import sys
import warnings
from pipreqs import pipreqs from pipreqs import pipreqs
class TestPipreqs(unittest.TestCase): class TestPipreqs(unittest.TestCase):
def setUp(self):
self.modules = [ @classmethod
def setUpClass(cls):
# Disable all logs for not spamming the terminal when running tests.
logging.disable(logging.CRITICAL)
# Specific warning not covered by the above command:
warnings.filterwarnings("ignore", category=DeprecationWarning, module="jupyter_client")
cls.modules = [
"flask", "flask",
"requests", "requests",
"sqlalchemy", "sqlalchemy",
@ -37,50 +47,42 @@ class TestPipreqs(unittest.TestCase):
"bs4", "bs4",
"after_method_is_valid_even_if_not_pep8", "after_method_is_valid_even_if_not_pep8",
] ]
self.modules2 = ["beautifulsoup4"] cls.modules2 = ["beautifulsoup4"]
self.local = ["docopt", "requests", "nose", "pyflakes"] cls.local = ["docopt", "requests", "nose", "pyflakes"]
self.project = os.path.join(os.path.dirname(__file__), "_data") cls.project = os.path.join(os.path.dirname(__file__), "_data")
self.empty_filepath = os.path.join(self.project, "empty.txt") cls.empty_filepath = os.path.join(cls.project, "empty.txt")
self.imports_filepath = os.path.join(self.project, "imports.txt") cls.imports_filepath = os.path.join(cls.project, "imports.txt")
self.imports_no_version_filepath = os.path.join(self.project, "imports_no_version.txt") cls.imports_no_version_filepath = os.path.join(cls.project, "imports_no_version.txt")
self.imports_any_version_filepath = os.path.join(self.project, "imports_any_version.txt") cls.imports_any_version_filepath = os.path.join(cls.project, "imports_any_version.txt")
self.non_existent_filepath = os.path.join(self.project, "non_existent_file.txt") cls.non_existent_filepath = os.path.join(cls.project, "non_existent_file.txt")
self.parsed_packages = [ cls.parsed_packages = [
{"name": "pandas", "version": "2.0.0"}, {"name": "pandas", "version": "2.0.0"},
{"name": "numpy", "version": "1.2.3"}, {"name": "numpy", "version": "1.2.3"},
{"name": "torch", "version": "4.0.0"}, {"name": "torch", "version": "4.0.0"},
] ]
self.parsed_packages_no_version = [ cls.parsed_packages_no_version = [
{"name": "pandas", "version": None}, {"name": "pandas", "version": None},
{"name": "tensorflow", "version": None}, {"name": "tensorflow", "version": None},
{"name": "torch", "version": None}, {"name": "torch", "version": None},
] ]
self.parsed_packages_any_version = [ cls.parsed_packages_any_version = [
{"name": "numpy", "version": None}, {"name": "numpy", "version": None},
{"name": "pandas", "version": "2.0.0"}, {"name": "pandas", "version": "2.0.0"},
{"name": "tensorflow", "version": None}, {"name": "tensorflow", "version": None},
{"name": "torch", "version": "4.0.0"}, {"name": "torch", "version": "4.0.0"},
] ]
self.project_clean = os.path.join(os.path.dirname(__file__), "_data_clean") cls.project_clean = os.path.join(os.path.dirname(__file__), "_data_clean")
self.project_invalid = os.path.join(os.path.dirname(__file__), "_invalid_data") cls.project_invalid = os.path.join(os.path.dirname(__file__), "_invalid_data")
self.parsed_packages = [ cls.project_with_ignore_directory = os.path.join(os.path.dirname(__file__), "_data_ignore")
{"name": "pandas", "version": "2.0.0"}, cls.project_with_duplicated_deps = os.path.join(os.path.dirname(__file__), "_data_duplicated_deps")
{"name": "numpy", "version": "1.2.3"},
{"name": "torch", "version": "4.0.0"},
]
self.empty_filepath = os.path.join(self.project, "empty.txt")
self.imports_filepath = os.path.join(self.project, "imports.txt")
self.project_with_ignore_directory = os.path.join(os.path.dirname(__file__), "_data_ignore") cls.requirements_path = os.path.join(cls.project, "requirements.txt")
self.project_with_duplicated_deps = os.path.join(os.path.dirname(__file__), "_data_duplicated_deps") cls.alt_requirement_path = os.path.join(cls.project, "requirements2.txt")
cls.non_existing_filepath = "xpto"
self.requirements_path = os.path.join(self.project, "requirements.txt")
self.alt_requirement_path = os.path.join(self.project, "requirements2.txt")
self.non_existing_filepath = "xpto"
def test_get_all_imports(self): def test_get_all_imports(self):
imports = pipreqs.get_all_imports(self.project) imports = pipreqs.get_all_imports(self.project)