Skip to content

Commit 255752d

Browse files
authored
Merge pull request #87 from siddhpant/pipfile-syntax-fix
Fixed the Pipfile generation syntax and added tests
2 parents c1e4c54 + 5d4dd0c commit 255752d

File tree

4 files changed

+127
-8
lines changed

4 files changed

+127
-8
lines changed

CHANGELOG.rst

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
11
Change log
22
================================================================================
33

4+
0.0.6 - 25-05-2019
5+
--------------------------------------------------------------------------------
6+
7+
Updated
8+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
9+
10+
#. #87: updated the pipfile syntax
11+
12+
Added
13+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
14+
15+
#. #87: Added tests for pipfile generation
16+
417
0.0.5 - 04-05-2019
518
--------------------------------------------------------------------------------
619

changelog.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
name: "pypi-mobans"
22
organisation: moremoban
33
releases:
4+
- changes:
5+
- action: Updated
6+
details:
7+
- "#87: updated the pipfile syntax"
8+
- action: Added
9+
details:
10+
- "#87: Added tests for pipfile generation"
11+
date: 25-05-2019
12+
version: 0.0.6
413
- changes:
514
- action: Updated
615
details:

templates/Pipfile.jj2

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,23 @@ python_version= '3.6'
88

99
[packages]
1010
{% for dependency in dependencies: %}
11-
{% if ('=' in dependency) or ('>' in dependency) or ('<' in dependency) %}
12-
{{dependency}}
13-
{% else %}
11+
{% if ('>' in dependency) %}
12+
{%- with dep, ver = dependency.split('>') -%}
13+
{{dep}} = '>{{ver}}'
14+
{% endwith %}
15+
{% elif ('<' in dependency) %}
16+
{%- with dep, ver = dependency.split('<') -%}
17+
{{dep}} = '<{{ver}}'
18+
{% endwith %}
19+
{% elif ('~' in dependency) %}
20+
{%- with dep, ver = dependency.split('~') -%}
21+
{{dep}} = '~{{ver}}'
22+
{% endwith %}
23+
{% elif ('=' in dependency) %}
24+
{%- with dep, ver = dependency.split('=', 1) -%}
25+
{{dep}} = '={{ver}}'
26+
{% endwith %}
27+
{%- else -%}
1428
{{dependency}} = "*"
1529
{% endif %}
1630
{% endfor %}
@@ -23,10 +37,24 @@ coverage = "*"
2337
flake8 = "*"
2438
{% if dev_dependencies is defined %}
2539
{% for dependency in dev_dependencies: %}
26-
{% if ('=' in dependency) or ('>' in dependency) or ('<' in dependency) %}
27-
{{dependency}}
28-
{% else %}
40+
{% if ('>' in dependency) %}
41+
{%- with dep, ver = dependency.split('>') -%}
42+
{{dep}} = '>{{ver}}'
43+
{% endwith %}
44+
{% elif ('<' in dependency) %}
45+
{%- with dep, ver = dependency.split('<') -%}
46+
{{dep}} = '<{{ver}}'
47+
{% endwith %}
48+
{% elif ('~' in dependency) %}
49+
{%- with dep, ver = dependency.split('~') -%}
50+
{{dep}} = '~{{ver}}'
51+
{% endwith %}
52+
{% elif ('=' in dependency) %}
53+
{%- with dep, ver = dependency.split('=', 1) -%}
54+
{{dep}} = '={{ver}}'
55+
{% endwith %}
56+
{%- else -%}
2957
{{dependency}} = "*"
30-
{% endif %}
31-
{% endfor %}
58+
{% endif %}
59+
{%- endfor %}
3260
{% endif %}

tests/test_pipfile.py

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
import textwrap
2+
3+
from test_utils import get_rendered_file
4+
5+
6+
def test_pipfile():
7+
context = {
8+
'dependencies': [
9+
'dependency',
10+
'dependency=1.0',
11+
'dependency==1.0',
12+
'dependency>1.0',
13+
'dependency>=1.0',
14+
'dependency<1.0',
15+
'dependency<=1.0',
16+
'dependency~1.0',
17+
'dependency~=1.0'
18+
],
19+
'dev_dependencies': [
20+
'dev_dependency',
21+
'dev_dependency=1.0',
22+
'dev_dependency==1.0',
23+
'dev_dependency>1.0',
24+
'dev_dependency>=1.0',
25+
'dev_dependency<1.0',
26+
'dev_dependency<=1.0',
27+
'dev_dependency~1.0',
28+
'dev_dependency~=1.0'
29+
]
30+
}
31+
filename = 'Pipfile.jj2'
32+
rendered = get_rendered_file(filename, context)
33+
expected_pipfile = textwrap.dedent("""\
34+
[[source]]
35+
url = 'https://pypi.python.org/simple'
36+
verify_ssl = true
37+
name = 'pypi'
38+
39+
[requires]
40+
python_version= '3.6'
41+
42+
[packages]
43+
dependency = "*"
44+
dependency = '=1.0'
45+
dependency = '==1.0'
46+
dependency = '>1.0'
47+
dependency = '>=1.0'
48+
dependency = '<1.0'
49+
dependency = '<=1.0'
50+
dependency = '~1.0'
51+
dependency = '~=1.0'
52+
53+
[dev-packages]
54+
nose = "*"
55+
mock = "*"
56+
codecov = "*"
57+
coverage = "*"
58+
flake8 = "*"
59+
dev_dependency = "*"
60+
dev_dependency = '=1.0'
61+
dev_dependency = '==1.0'
62+
dev_dependency = '>1.0'
63+
dev_dependency = '>=1.0'
64+
dev_dependency = '<1.0'
65+
dev_dependency = '<=1.0'
66+
dev_dependency = '~1.0'
67+
dev_dependency = '~=1.0'
68+
""")
69+
assert expected_pipfile == rendered

0 commit comments

Comments
 (0)