fix(tests): Add missing test packages, add more tests

This commit is contained in:
Vadim Kravcenko 2015-05-08 17:29:05 +02:00
parent f2024cbc40
commit 557817161e
3 changed files with 18 additions and 14 deletions

View File

@ -19,7 +19,7 @@ requirements = [
]
test_requirements = [
# TODO: put package test requirements here
'docopt', 'yarg'
]
setup(

View File

@ -8,6 +8,7 @@ import sqlite3
import time
import sys
import signal
import bs4
import requests
import nonexistendmodule
# import django

View File

@ -15,16 +15,17 @@ from pipreqs import pipreqs
class TestPipreqs(unittest.TestCase):
def setUp(self):
self.modules = ['flask', 'requests', 'sqlalchemy', 'docopt', 'ujson', 'nonexistendmodule']
self.modules = ['flask', 'requests', 'sqlalchemy', 'docopt', 'ujson', 'nonexistendmodule', 'bs4']
self.modules2 = ['beautifulsoup4']
self.project = os.path.join(os.path.dirname(__file__), "_data")
self.requirements_path = os.path.join(self.project, "requirements.txt")
self.alt_requirement_path = os.path.join(self.project, "requirements2.txt")
def test_get_all_imports(self):
imports = pipreqs.get_all_imports(self.project)
self.assertEqual(len(imports), 6, "Incorrect Imports array length")
self.assertEqual(len(imports), 7, "Incorrect Imports array length")
for item in imports:
self.assertTrue(item in self.modules, "Import is missing")
self.assertTrue(item.lower() in self.modules, "Import is missing: " + item)
self.assertFalse("time" in imports)
self.assertFalse("logging" in imports)
self.assertFalse("curses" in imports)
@ -36,37 +37,39 @@ class TestPipreqs(unittest.TestCase):
imports = pipreqs.get_all_imports(self.project)
with_info = pipreqs.get_imports_info(imports)
# Should contain only 5 Elements without the "nonexistendmodule"
print (with_info)
self.assertEqual(len(with_info), 5, "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")
self.assertTrue(item['name'].lower() in self.modules, "Import item appears to be missing " + item['name'])
def test_get_use_local_only(self):
# should find only docopt and requests
imports_with_info = pipreqs.get_import_local(self.modules)
self.assertTrue(len(imports_with_info) == 2)
self.assertEqual(len(imports_with_info), 2)
def test_init(self):
pipreqs.init({'<path>': self.project, '--savepath': None,'--use-local':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)
data = f.read().lower()
for item in self.modules[:-2]:
self.assertTrue(item.lower() in data)
def test_init_local_only(self):
pipreqs.init({'<path>': self.project, '--savepath': None,'--use-local':True})
assert os.path.exists(self.requirements_path) == 1
with open(self.requirements_path, "r") as f:
data = f.readlines()
self.assertEqual(len(data), 2, 'Only two local packages should be found')
self.assertEqual(len(f.readlines()), 2, 'Only two local packages should be found')
def test_init_savepath(self):
pipreqs.init({'<path>': self.project, '--savepath': self.alt_requirement_path,'--use-local':None})
assert os.path.exists(self.alt_requirement_path) == 1
with open(self.alt_requirement_path, "r") as f:
data = f.read()
for item in self.modules[:-1]:
self.assertTrue(item in data)
data = f.read().lower()
for item in self.modules[:-2]:
self.assertTrue(item.lower() in data)
for item in self.modules2:
self.assertTrue(item.lower() in data)
def tearDown(self):