diff --git a/tests/_data_ignore/.ignore_second/ignored.py b/tests/_data_ignore/.ignore_second/ignored.py new file mode 100644 index 0000000..6a4ba40 --- /dev/null +++ b/tests/_data_ignore/.ignore_second/ignored.py @@ -0,0 +1,2 @@ +# Everything in here should be ignored +from getpass import getpass \ No newline at end of file diff --git a/tests/_data_ignore/.ignored_dir/ignored.py b/tests/_data_ignore/.ignored_dir/ignored.py new file mode 100644 index 0000000..8765306 --- /dev/null +++ b/tests/_data_ignore/.ignored_dir/ignored.py @@ -0,0 +1,2 @@ +# Everything in here should be ignored +import click \ No newline at end of file diff --git a/tests/_data_ignore/test.py b/tests/_data_ignore/test.py new file mode 100644 index 0000000..cfd039c --- /dev/null +++ b/tests/_data_ignore/test.py @@ -0,0 +1,61 @@ +"""unused import""" +# pylint: disable=undefined-all-variable, import-error, no-absolute-import, too-few-public-methods, missing-docstring +import xml.etree # [unused-import] +import xml.sax # [unused-import] +import os.path as test # [unused-import] +from sys import argv as test2 # [unused-import] +from sys import flags # [unused-import] +# +1:[unused-import,unused-import] +from collections import deque, OrderedDict, Counter +# All imports above should be ignored +import requests # [unused-import] + +# setuptools +import zipimport # command/easy_install.py + +# twisted +from importlib import invalidate_caches # python/test/test_deprecate.py + +# astroid +import zipimport # manager.py +# IPython +from importlib.machinery import all_suffixes # core/completerlib.py +import importlib # html/notebookapp.py + +from IPython.utils.importstring import import_item # Many files + +# pyflakes +# test/test_doctests.py +from pyflakes.test.test_imports import Test as TestImports + +# Nose +from nose.importer import Importer, add_path, remove_path # loader.py + +import atexit +from __future__ import print_function +from docopt import docopt +import curses, logging, sqlite3 +import logging +import os +import sqlite3 +import time +import sys +import signal +import bs4 +import nonexistendmodule +import boto as b, peewee as p +# import django +import flask.ext.somext # # # +from sqlalchemy import model +try: + import ujson as json +except ImportError: + import json + +import models + + +def main(): + pass + +import after_method_is_valid_even_if_not_pep8 diff --git a/tests/test_pipreqs.py b/tests/test_pipreqs.py index 2a51bb5..7ccbfd2 100755 --- a/tests/test_pipreqs.py +++ b/tests/test_pipreqs.py @@ -25,6 +25,7 @@ class TestPipreqs(unittest.TestCase): self.local = ["docopt", "requests", "nose", 'pyflakes'] self.project = os.path.join(os.path.dirname(__file__), "_data") self.project_invalid = os.path.join(os.path.dirname(__file__), "_invalid_data") + self.project_with_ignore_directory = os.path.join(os.path.dirname(__file__), "_data_ignore") self.requirements_path = os.path.join(self.project, "requirements.txt") self.alt_requirement_path = os.path.join( self.project, "requirements2.txt") @@ -144,6 +145,24 @@ class TestPipreqs(unittest.TestCase): self.assertRaises(requests.exceptions.MissingSchema, pipreqs.init, {'': self.project, '--savepath': None, '--use-local': None, '--force': True, '--proxy': None, '--pypi-server': 'nonexistent'}) + def test_ignored_directory(self): + """ + Test --ignore parameter + """ + pipreqs.init( + {'': self.project_with_ignore_directory, '--savepath': None, + '--use-local': None, '--force': True, + '--proxy':None, + '--pypi-server':None, + '--ignore':['.ignored_dir', '.ignore_second'] + } + ) + with open(os.path.join(self.project_with_ignore_directory, "requirements.txt"), "r") as f: + data = f.read().lower() + for item in ['click', 'getpass']: + self.assertFalse(item.lower() in data) + + def tearDown(self): """ Remove requiremnts.txt files that were written