Add tests

This commit is contained in:
Vineet 2014-02-02 23:12:21 +05:30
parent 1e699de339
commit 45ae660dea
2 changed files with 472 additions and 0 deletions

57
tests/pipdeptree_tests.py Normal file
View File

@ -0,0 +1,57 @@
import pickle
from pipdeptree import req_version, non_top_pkg_name, render_tree
with open('tests/pkgs.p') as f:
pkgs = pickle.load(f)
pkg_index = {p.key: p for p in pkgs}
def find_req(req, parent):
"""Helper to get the requirement object from it's parent package
:param req : string
:param parent : pkg_resources.Distribution instance
:rtype : instance of requirement frozen set
"""
return [r for r in pkg_index[parent].requires() if r.key == req][0]
def test_req_version():
sqlalchemy = find_req('sqlalchemy', 'alembic')
assert req_version(sqlalchemy) == '>=0.7.3'
mako = find_req('mako', 'alembic')
assert req_version(mako) is None
def test_non_top_pkg_name():
flask_p = pkg_index['flask']
flask_r = find_req('flask', 'flask-script')
assert non_top_pkg_name(flask_r, flask_p) == 'flask [installed: 0.10.1]'
markupsafe_p = pkg_index['markupsafe']
markupsafe_jinja2_r = find_req('markupsafe', 'jinja2')
assert non_top_pkg_name(markupsafe_jinja2_r, markupsafe_p) == 'markupsafe [installed: 0.18]'
markupsafe_mako_r = find_req('markupsafe', 'mako')
assert non_top_pkg_name(markupsafe_mako_r, markupsafe_p) == 'markupsafe [required: >=0.9.2, installed: 0.18]'
def test_render_tree_only_top():
tree_str = render_tree(pkgs, False)
lines = set(tree_str.split('\n'))
assert 'flask-script==0.6.6' in lines
assert ' - sqlalchemy [required: >=0.7.3, installed: 0.9.1]' in lines
assert 'itsdangerous==0.23' not in lines
def test_render_tree_list_all():
tree_str = render_tree(pkgs, True)
lines = set(tree_str.split('\n'))
assert 'flask-script==0.6.6' in lines
assert ' - sqlalchemy [required: >=0.7.3, installed: 0.9.1]' in lines
assert 'itsdangerous==0.23' in lines

415
tests/pkgs.p Normal file
View File

@ -0,0 +1,415 @@
(lp0
ccopy_reg
_reconstructor
p1
(cpkg_resources
Distribution
p2
c__builtin__
object
p3
Ntp4
Rp5
(dp6
S'project_name'
p7
S'psycopg2'
p8
sS'precedence'
p9
I-1
sS'_key'
p10
S'psycopg2'
p11
sS'_version'
p12
S'2.5.2'
p13
sS'platform'
p14
NsS'location'
p15
S'/home/vineet/.virtualenvs/equimapper/lib/python2.7/site-packages'
p16
sS'py_version'
p17
S'2.7'
p18
sS'_provider'
p19
(ipkg_resources
PathMetadata
p20
(dp21
S'module_path'
p22
g16
sS'egg_info'
p23
S'/home/vineet/.virtualenvs/equimapper/lib/python2.7/site-packages/psycopg2-2.5.2-py2.7.egg-info'
p24
sbsbag1
(g2
g3
Ntp25
Rp26
(dp27
g7
S'Werkzeug'
p28
sg9
I-1
sg10
S'werkzeug'
p29
sg12
S'0.9.4'
p30
sg14
Nsg15
g16
sg17
S'2.7'
p31
sg19
(ipkg_resources
PathMetadata
p32
(dp33
g22
g16
sg23
S'/home/vineet/.virtualenvs/equimapper/lib/python2.7/site-packages/Werkzeug-0.9.4-py2.7.egg-info'
p34
sbsbag1
(g2
g3
Ntp35
Rp36
(dp37
g7
S'Flask'
p38
sg9
I-1
sg10
S'flask'
p39
sg12
S'0.10.1'
p40
sg14
Nsg15
g16
sg17
S'2.7'
p41
sg19
(ipkg_resources
PathMetadata
p42
(dp43
g22
g16
sg23
S'/home/vineet/.virtualenvs/equimapper/lib/python2.7/site-packages/Flask-0.10.1-py2.7.egg-info'
p44
sbsbag1
(g2
g3
Ntp45
Rp46
(dp47
g7
S'Mako'
p48
sg9
I-1
sg10
S'mako'
p49
sg12
S'0.9.1'
p50
sg14
Nsg15
g16
sg17
S'2.7'
p51
sg19
(ipkg_resources
PathMetadata
p52
(dp53
g22
g16
sg23
S'/home/vineet/.virtualenvs/equimapper/lib/python2.7/site-packages/Mako-0.9.1-py2.7.egg-info'
p54
sbsbag1
(g2
g3
Ntp55
Rp56
(dp57
g7
S'MarkupSafe'
p58
sg9
I-1
sg10
S'markupsafe'
p59
sg12
S'0.18'
p60
sg14
Nsg15
g16
sg17
S'2.7'
p61
sg19
(ipkg_resources
PathMetadata
p62
(dp63
g22
g16
sg23
S'/home/vineet/.virtualenvs/equimapper/lib/python2.7/site-packages/MarkupSafe-0.18-py2.7.egg-info'
p64
sbsbag1
(g2
g3
Ntp65
Rp66
(dp67
g7
S'Flask-Script'
p68
sg9
I-1
sg10
S'flask-script'
p69
sg12
S'0.6.6'
p70
sg14
Nsg15
g16
sg17
S'2.7'
p71
sg19
(ipkg_resources
PathMetadata
p72
(dp73
g22
g16
sg23
S'/home/vineet/.virtualenvs/equimapper/lib/python2.7/site-packages/Flask_Script-0.6.6-py2.7.egg-info'
p74
sbsbag1
(g2
g3
Ntp75
Rp76
(dp77
g7
S'alembic'
p78
sg9
I-1
sg10
S'alembic'
p79
sg12
S'0.6.2'
p80
sg14
Nsg15
g16
sg17
S'2.7'
p81
sg19
(ipkg_resources
PathMetadata
p82
(dp83
g22
g16
sg23
S'/home/vineet/.virtualenvs/equimapper/lib/python2.7/site-packages/alembic-0.6.2-py2.7.egg-info'
p84
sbsbag1
(g2
g3
Ntp85
Rp86
(dp87
g7
S'itsdangerous'
p88
sg9
I-1
sg10
S'itsdangerous'
p89
sg12
S'0.23'
p90
sg14
Nsg15
g16
sg17
S'2.7'
p91
sg19
(ipkg_resources
PathMetadata
p92
(dp93
g22
g16
sg23
S'/home/vineet/.virtualenvs/equimapper/lib/python2.7/site-packages/itsdangerous-0.23-py2.7.egg-info'
p94
sbsbag1
(g2
g3
Ntp95
Rp96
(dp97
g7
S'SQLAlchemy'
p98
sg9
I-1
sg10
S'sqlalchemy'
p99
sg12
S'0.9.1'
p100
sg14
Nsg15
g16
sg17
S'2.7'
p101
sg19
(ipkg_resources
PathMetadata
p102
(dp103
g22
g16
sg23
S'/home/vineet/.virtualenvs/equimapper/lib/python2.7/site-packages/SQLAlchemy-0.9.1-py2.7.egg-info'
p104
sbsbag1
(g2
g3
Ntp105
Rp106
(dp107
g7
S'slugify'
p108
sg9
I-1
sg10
S'slugify'
p109
sg12
S'0.0.1'
p110
sg14
Nsg15
g16
sg17
S'2.7'
p111
sg19
(ipkg_resources
PathMetadata
p112
(dp113
g22
g16
sg23
S'/home/vineet/.virtualenvs/equimapper/lib/python2.7/site-packages/slugify-0.0.1-py2.7.egg-info'
p114
sbsbag1
(g2
g3
Ntp115
Rp116
(dp117
g7
S'Jinja2'
p118
sg9
I-1
sg10
S'jinja2'
p119
sg12
S'2.7.2'
p120
sg14
Nsg15
g16
sg17
S'2.7'
p121
sg19
(ipkg_resources
PathMetadata
p122
(dp123
g22
g16
sg23
S'/home/vineet/.virtualenvs/equimapper/lib/python2.7/site-packages/Jinja2-2.7.2-py2.7.egg-info'
p124
sbsbag1
(g2
g3
Ntp125
Rp126
(dp127
g7
S'redis'
p128
sg9
I-1
sg10
S'redis'
p129
sg12
S'2.9.1'
p130
sg14
Nsg15
g16
sg17
S'2.7'
p131
sg19
(ipkg_resources
PathMetadata
p132
(dp133
g22
g16
sg23
S'/home/vineet/.virtualenvs/equimapper/lib/python2.7/site-packages/redis-2.9.1-py2.7.egg-info'
p134
sbsba.