From 9fcb4216a2084a8e2d4ec0887d7c097c08cf7b9f Mon Sep 17 00:00:00 2001 From: Vadim Kravcenko Date: Fri, 24 Apr 2015 10:57:25 +0200 Subject: [PATCH] Fix(tests): Increase test coverage --- pipreqs/pipreqs.py | 4 ++-- tests/_data/requirements.txt | 4 ---- tests/_data/test.py | 3 +++ tests/test_pipreqs.py | 26 +++++++++++++++++++------- 4 files changed, 24 insertions(+), 13 deletions(-) delete mode 100644 tests/_data/requirements.txt diff --git a/pipreqs/pipreqs.py b/pipreqs/pipreqs.py index cfbddc5..bfb01fa 100755 --- a/pipreqs/pipreqs.py +++ b/pipreqs/pipreqs.py @@ -86,7 +86,7 @@ def init(args): generate_requirements_file(path, imports_with_info) print ("Successfuly saved requirements file in: " + path) -def main(): +def main(): # pragma: no cover args = docopt(__doc__, version='xstat 0.1') log_level = logging.WARNING if args['--debug']: @@ -99,4 +99,4 @@ def main(): sys.exit(0) if __name__ == '__main__': - main() \ No newline at end of file + main() # pragma: no cover \ No newline at end of file diff --git a/tests/_data/requirements.txt b/tests/_data/requirements.txt deleted file mode 100644 index 0ebbb52..0000000 --- a/tests/_data/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -flask==0.10.1 -requests==2.6.0 -sqlalchemy==1.0.0 -docopt==0.6.2 diff --git a/tests/_data/test.py b/tests/_data/test.py index a696eae..03b688c 100644 --- a/tests/_data/test.py +++ b/tests/_data/test.py @@ -9,9 +9,12 @@ import time import sys import signal import requests +import nonexistendmodule +# Ignore this Line import flask.ext.somext from sqlalchemy import model + def main(): pass diff --git a/tests/test_pipreqs.py b/tests/test_pipreqs.py index d29da79..73430d6 100755 --- a/tests/test_pipreqs.py +++ b/tests/test_pipreqs.py @@ -16,12 +16,13 @@ from pipreqs import pipreqs class TestPipreqs(unittest.TestCase): def setUp(self): - self.modules = ['flask', 'requests', 'sqlalchemy', 'docopt'] + self.modules = ['flask', 'requests', 'sqlalchemy', 'docopt', 'nonexistendmodule'] + self.project = os.path.join(os.path.dirname(__file__),"_data") + self.requirements_path = os.path.join(self.project,"requirements.txt") def test_get_all_imports(self): - path = os.path.join(os.path.dirname(__file__),"_data") - imports = pipreqs.get_all_imports(path) - self.assertEqual(len(imports),4, "Incorrect Imports array length") + imports = pipreqs.get_all_imports(self.project) + self.assertEqual(len(imports),5, "Incorrect Imports array length") for item in imports: self.assertTrue(item in self.modules, "Import is missing") self.assertFalse("time" in imports) @@ -30,15 +31,26 @@ class TestPipreqs(unittest.TestCase): self.assertFalse("__future__" in imports) def test_get_imports_info(self): - path = os.path.join(os.path.dirname(__file__),"_data") - imports = pipreqs.get_all_imports(path) + imports = pipreqs.get_all_imports(self.project) with_info = pipreqs.get_imports_info(imports) + # Should contain only 4 Elements without the "nonexistendmodule" self.assertEqual(len(with_info),4, "Length of imports array with info is wrong") for item in with_info: self.assertTrue(item['name'] in self.modules, "Import item appears to be missing") + def test_init(self): + pipreqs.init({'':self.project, '--savepath':None}) + assert os.path.exists(self.requirements_path) == 1 + with open(self.requirements_path, "r") as f: + data = f.read() + for item in self.modules[:-1]: + self.assertTrue(item in data) + def tearDown(self): - pass + try: + os.remove(self.requirements_path) + except OSError: + pass if __name__ == '__main__': unittest.main()