def test_strange_fadesinfo(logged): parsed = parsing._parse_content( io.StringIO(""" import foo # fades broken::whatever """)) logged.assert_warning("Not understood fades repository", "broken") assert parsed == {}
def test_strange_fadesinfo2(logged): parsed = parsing._parse_content( io.StringIO(""" import foo # fadesbroken """)) logged.assert_warning("Not understood fades info", "fadesbroken") assert parsed == {}
def test_version_different(self): parsed = parsing._parse_content(io.StringIO(""" import foo # fades !=3.5 """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('foo !=3.5')] })
def test_version_same_one_space_before(self): parsed = parsing._parse_content(io.StringIO(""" import foo # fades == 3.5 """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('foo == 3.5')] })
def test_vcs_implicit(self): parsed = parsing._parse_content(io.StringIO(""" import foo # fades http://www.whatever/project """)) self.assertDictEqual(parsed, { REPO_VCS: [parsing.VCSDependency('http://www.whatever/project')] })
def test_vcs_implicit(self): parsed = parsing._parse_content(io.StringIO(""" import foo # fades http://www.whatever/project """)) self.assertDictEqual(parsed, { REPO_VCS: [parsing.VCSDependency('http://www.whatever/project')] })
def test_projectname_version_space(self): parsed = parsing._parse_content(io.StringIO(""" import foo # fades othername <5 """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('othername <5')] })
def test_projectname_version_explicit(self): parsed = parsing._parse_content(io.StringIO(""" import foo # fades pypi::othername >= 3 """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('othername >= 3')] })
def test_strange_import(self): parsed = parsing._parse_content(io.StringIO(""" from foo bar import :( # fades """)) self.assertLoggedDebug("Not understood import info", "['from', 'foo', 'bar', 'import', ':(']") self.assertDictEqual(parsed, {})
def test_projectname_version_explicit(self): parsed = parsing._parse_content(io.StringIO(""" import foo # fades pypi::othername >= 3 """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('othername >= 3')] })
def test_allow_other_comments_reverse_default(self): parsed = parsing._parse_content(io.StringIO(""" from foo import * # fades # NOQA """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('foo')] })
def test_from_import_complex(self): parsed = parsing._parse_content(io.StringIO(""" from baz.foo import bar # fades """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('baz')] })
def test_import(self): parsed = parsing._parse_content(io.StringIO(""" import foo.bar # fades """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('foo')] })
def test_commented_line(logged): parsed = parsing._parse_content( io.StringIO(""" #import foo # fades """)) assert parsed == {} logged.assert_not_warning("Not understood fades")
def test_projectname_pkgnamedb_version_othername(self): parsed = parsing._parse_content(io.StringIO(""" import bs4 # fades othername >=5 """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('othername >=5')] })
def test_from_import_simple(self): parsed = parsing._parse_content(io.StringIO(""" from foo import bar # fades """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('foo')] })
def test_comma_separated_import(self): parsed = parsing._parse_content(io.StringIO(""" from foo import bar, baz, qux # fades """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('foo')] })
def test_vcs_explicit(self): parsed = parsing._parse_content(io.StringIO(""" import foo # fades vcs::superurl """)) self.assertDictEqual(parsed, { REPO_VCS: [parsing.VCSDependency('superurl')] })
def test_from_import_complex(self): parsed = parsing._parse_content(io.StringIO(""" from baz.foo import bar # fades.pypi """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('baz')] })
def test_simple_default(self): parsed = parsing._parse_content( io.StringIO(""" import time import foo # fades """)) self.assertDictEqual(parsed, {REPO_PYPI: [get_req('foo')]})
def test_projectname_pkgnamedb_othername_default(self): parsed = parsing._parse_content(io.StringIO(""" import bs4 # fades othername """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('othername')] })
def test_double(): parsed = parsing._parse_content( io.StringIO(""" import time # fades import foo # fades """)) assert parsed == {REPO_PYPI: get_reqs('time') + get_reqs('foo')}
def test_projectname_pkgnamedb_version_othername(self): parsed = parsing._parse_content(io.StringIO(""" import bs4 # fades.pypi othername >=5 """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('othername >=5')] })
def test_strange_fadesinfo2(logs): parsed = parsing._parse_content( io.StringIO(""" import foo # fadesbroken """)) assert "Not understood fades info: 'fadesbroken'" in logs.warning assert parsed == {}
def test_commented_line(self): parsed = parsing._parse_content( io.StringIO(""" #import foo # fades.pypi """)) self.assertDictEqual(parsed, {}) self.assertNotLoggedWarning("Not understood fades")
def test_projectname_version_space(self): parsed = parsing._parse_content(io.StringIO(""" import foo # fades.pypi othername <5 """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('othername <5')] })
def test_projectname_pkgnamedb(self): parsed = parsing._parse_content(io.StringIO(""" import bs4 # fades.pypi """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('beautifulsoup4')] })
def test_strange_import(self): parsed = parsing._parse_content(io.StringIO(""" from foo bar import :( # fades.pypi """)) self.assertLoggedWarning("Not understood import info", "['from', 'foo', 'bar', 'import', ':(']") self.assertDictEqual(parsed, {})
def test_projectname_pkgnamedb_version(self): parsed = parsing._parse_content( io.StringIO(""" import bs4 # fades.pypi >=5 """)) self.assertDictEqual(parsed, {REPO_PYPI: [get_req('beautifulsoup4 >=5')]})
def test_version_same_or_greater_two_space_after(self): parsed = parsing._parse_content(io.StringIO(""" import foo # fades>= 2 """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('foo >= 2')] })
def test_allow_other_comments_reverse_default(self): parsed = parsing._parse_content(io.StringIO(""" from foo import * # fades # NOQA """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('foo')] })
def test_other_lines_with_fades_string(self): parsed = parsing._parse_content( io.StringIO(""" import bar # fades.pypi print("screen fades to black") """)) self.assertDictEqual(parsed, {REPO_PYPI: [get_req('bar')]})
def test_import(self): parsed = parsing._parse_content(io.StringIO(""" import foo.bar # fades.pypi """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('foo')] })
def test_version_same_or_greater_two_space_after(self): parsed = parsing._parse_content(io.StringIO(""" import foo # fades.pypi>= 2 """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('foo >= 2')] })
def test_version_greater_one_space_before(self): parsed = parsing._parse_content(io.StringIO(""" import foo # fades.pypi> 2 """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('foo > 2')] })
def test_vcs_explicit(self): parsed = parsing._parse_content( io.StringIO(""" import foo # fades vcs::superurl """)) self.assertDictEqual(parsed, {REPO_VCS: [parsing.VCSDependency('superurl')]})
def test_comma_separated_import(self): parsed = parsing._parse_content(io.StringIO(""" from foo import bar, baz, qux # fades.pypi """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('foo')] })
def test_other_lines_with_fades_string(): parsed = parsing._parse_content( io.StringIO(""" import bar # fades print("screen fades to black") """)) assert parsed == {REPO_PYPI: get_reqs('bar')}
def test_strange_fadesinfo(logs): parsed = parsing._parse_content( io.StringIO(""" import foo # fades broken::whatever """)) assert "Not understood fades repository: 'broken'" in logs.warning assert parsed == {}
def test_simple_default(): parsed = parsing._parse_content( io.StringIO(""" import time import foo # fades """)) assert parsed == {REPO_PYPI: get_reqs('foo')}
def test_version_greater_no_space_default(self): parsed = parsing._parse_content(io.StringIO(""" import foo # fades>2 """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('foo >2')] })
def test_version_different(self): parsed = parsing._parse_content(io.StringIO(""" import foo # fades.pypi !=3.5 """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('foo !=3.5')] })
def test_version_same_no_spaces(self): parsed = parsing._parse_content(io.StringIO(""" import foo # fades.pypi==3.5 """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('foo ==3.5')] })
def test_commented_line(logs): parsed = parsing._parse_content( io.StringIO(""" #import foo # fades """)) assert parsed == {} assert "Not understood fades" not in logs.warning
def test_fades_and_hashtag_mentioned_in_code_mixed_with_imports(): parsed = parsing._parse_content( io.StringIO("""import requests # fades 'http://fades.readthedocs.io/en/release-7-0/readme.html#how-to-use-it' """)) assert parsed == {REPO_PYPI: get_reqs('requests')}
def test_strange_fadesinfo2(self): parsed = parsing._parse_content( io.StringIO(""" import foo # fadesbroken """)) self.assertLoggedWarning("Not understood fades info", "fadesbroken") self.assertDictEqual(parsed, {})
def test_double(self): parsed = parsing._parse_content(io.StringIO(""" import time # fades.pypi import foo # fades.pypi """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('time'), get_req('foo')] })
def test_fades_and_hashtag_mentioned_in_code(self): """Test the case where a string contains both: fades and hashtag (#) but is not an import. """ parsed = parsing._parse_content(io.StringIO(""" 'http://fades.readthedocs.io/en/release-7-0/readme.html#how-to-use-it' """)) self.assertDictEqual(parsed, {})
def test_nocomment(self): # note that we're testing the import at the beginning of the line, and # in also indented parsed = parsing._parse_content(io.StringIO("""import time import time from time import foo """)) self.assertDictEqual(parsed, {})
def test_fades_and_hashtag_mentioned_in_code_mixed_with_imports(self): parsed = parsing._parse_content(io.StringIO("""import requests # fades 'http://fades.readthedocs.io/en/release-7-0/readme.html#how-to-use-it' """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('requests')] })
def test_other_lines_with_fades_string(self): parsed = parsing._parse_content(io.StringIO(""" import bar # fades.pypi print("screen fades to black") """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('bar')] })
def test_with_commented_line(self): parsed = parsing._parse_content( io.StringIO(""" import bar # fades.pypi # a commented line """)) self.assertDictEqual(parsed, {REPO_PYPI: [get_req('bar')]}) self.assertNotLoggedWarning("Not understood fades")
def test_mixed(self): parsed = parsing._parse_content(io.StringIO(""" import foo # fades vcs::superurl import bar # fades """)) self.assertDictEqual(parsed, { REPO_VCS: [parsing.VCSDependency('superurl')], REPO_PYPI: [get_req('bar')], })
def test_continuation_line(self): parsed = parsing._parse_content(io.StringIO(""" import bar # fades.pypi > 2 import foo """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('foo > 2')] })
def test_with_commented_line(self): parsed = parsing._parse_content(io.StringIO(""" import bar # fades.pypi # a commented line """)) self.assertDictEqual(parsed, { REPO_PYPI: [get_req('bar')] }) self.assertNotLoggedWarning("Not understood fades")
def test_fades_user_strange_comment_with_hashtag_ignored(self): parsed = parsing._parse_content(io.StringIO(""" import foo # fades==2 # Some comment with #hashtash """)) # noqa self.assertDictEqual(parsed, {})
def test_strange_fadesinfo2(self): parsed = parsing._parse_content(io.StringIO(""" import foo # fadesbroken """)) self.assertLoggedWarning("Not understood fades info", "fadesbroken") self.assertDictEqual(parsed, {})
def test_commented_line(self): parsed = parsing._parse_content(io.StringIO(""" #import foo # fades.pypi """)) self.assertDictEqual(parsed, {}) self.assertNotLoggedWarning("Not understood fades")
def test_simple_default(self): parsed = parsing._parse_content(io.StringIO(""" import time import foo # fades """)) self.assertDictEqual(parsed, {REPO_PYPI: [get_req('foo')]})