Skip to content

Commit

Permalink
Add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
tammoippen committed Oct 11, 2017
1 parent aa91978 commit da761f6
Show file tree
Hide file tree
Showing 7 changed files with 96 additions and 9 deletions.
3 changes: 2 additions & 1 deletion Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ verify_ssl = true

[packages]

iso4217parse = {path = ".", editable = true}
"iso4217parse" = {path = ".", editable = true}

[dev-packages]

Expand All @@ -14,3 +14,4 @@ pytest = "*"
"pytest-cov" = "*"
"pytest-flake8" = "*"
"python-coveralls" = "*"
"iso3166" = "*"
9 changes: 8 additions & 1 deletion Pipfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,10 @@ Out[3]:
In [4]: iso4217parse.parse('Price is 5 €')
Out[4]: [Currency(alpha3='EUR', code_num=978, name='Euro',
symbols=['', 'euro', 'euros'], minor=2,
countries=['AD', 'AT', 'BE', 'BL', 'CY', 'DE', 'EE', 'ES', 'FI', 'FR', 'GP', 'GR',
'IE', 'IT', 'LT', 'LU', 'LV', 'MC', 'ME', 'MQ', 'MT', 'NL', 'PM', 'PT',
'RE', 'SI', 'SK', 'SM', 'YT'])]
countries=['AD', 'AT', 'AX', 'BE', 'BL', 'CY', 'DE', 'EE', 'ES', 'FI',
'FR', 'GF', 'GP', 'GR', 'IE', 'IT', 'LT', 'LU', 'LV', 'MC',
'ME', 'MF', 'MQ', 'MT', 'NL', 'PM', 'PT', 'RE', 'SI', 'SK',
'SM', 'TF', 'VA', 'XK', 'YT'])]

In [5]: iso4217parse.parse('CA﹩15.76')
Out[5]: [Currency(alpha3='CAD', code_num=124, name='Canadian dollar',
Expand Down Expand Up @@ -122,7 +123,7 @@ Parameters:
code_num: int An iso4217 numeric code.

Returns:
Currency: return Currency object for `code_num`, if available.
Currency: Currency object for `code_num`, if available.
```

**by_country:** Get currencies used in a country:
Expand Down
22 changes: 22 additions & 0 deletions tests/test_by_alpha3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, print_function, unicode_literals

import iso4217parse


def test_invalid():
assert iso4217parse.by_alpha3(None) is None
assert iso4217parse.by_alpha3(1234) is None
assert iso4217parse.by_alpha3('Blaa') is None


def test_all_currencies():
for code in iso4217parse._data()['alpha3'].keys():
assert isinstance(iso4217parse.by_alpha3(code), iso4217parse.Currency)


def test_examples():
exp = iso4217parse.Currency(alpha3='CHF', code_num=756, name='Swiss franc',
symbols=['SFr.', 'fr', 'Fr.', 'F', 'franc', 'francs', 'Franc', 'Francs'],
minor=2, countries=['CH', 'LI'])
assert exp == iso4217parse.by_alpha3('CHF')
21 changes: 21 additions & 0 deletions tests/test_by_code_num.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, print_function, unicode_literals

import iso4217parse


def test_invalid():
assert iso4217parse.by_code_num(None) is None
assert iso4217parse.by_code_num(1234) is None
assert iso4217parse.by_code_num('Blaa') is None


def test_all_currencies():
for code in iso4217parse._data()['code_num'].keys():
assert isinstance(iso4217parse.by_code_num(code), iso4217parse.Currency)


def test_examples():
exp = iso4217parse.Currency(alpha3='AMD', code_num=51, name='Armenian dram',
symbols=['֏', 'դր', 'dram'], minor=2, countries=['AM'])
assert exp == iso4217parse.by_code_num(51)
34 changes: 34 additions & 0 deletions tests/test_by_country.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, print_function, unicode_literals

import iso3166
import iso4217parse


def test_invalid():
assert iso4217parse.by_country(None) is None
assert iso4217parse.by_country(1234) is None
assert iso4217parse.by_country('Blaa') is None


def test_all_countries():
for country in iso3166._records:
if 'AQ' == country.alpha2: # ignore Antarctica
continue
cs = iso4217parse.by_country(country.alpha2)
if cs is None:
print(country.alpha2, country)
# assert isinstance(cs, list)
# assert len(cs) > 0


def test_examples():
exp = [
iso4217parse.Currency(alpha3='HKD', code_num=344, name='Hong Kong dollar',
symbols=['HK$', 'HK$', '$', '$', 'dollar', 'dollars', 'Dollar', 'Dollars', 'HK﹩', '﹩', '元'],
minor=2, countries=['HK']),
iso4217parse.Currency(alpha3='CNH', code_num=None, name='Chinese yuan',
symbols=['CN¥', '¥', 'CN¥', '¥', 'RMB', '元'],
minor=2, countries=['HK'])
]
assert exp == iso4217parse.by_country('HK')
7 changes: 4 additions & 3 deletions tests/test_parse.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,10 @@ def test_examples():
name='Euro',
symbols=['€', 'euro', 'euros'],
minor=2,
countries=['AD', 'AT', 'BE', 'BL', 'CY', 'DE', 'EE', 'ES', 'FI', 'FR', 'GP', 'GR',
'IE', 'IT', 'LT', 'LU', 'LV', 'MC', 'ME', 'MQ', 'MT', 'NL', 'PM', 'PT',
'RE', 'SI', 'SK', 'SM', 'YT']
countries=['AD', 'AT', 'AX', 'BE', 'BL', 'CY', 'DE', 'EE', 'ES', 'FI',
'FR', 'GF', 'GP', 'GR', 'IE', 'IT', 'LT', 'LU', 'LV', 'MC',
'ME', 'MF', 'MQ', 'MT', 'NL', 'PM', 'PT', 'RE', 'SI', 'SK',
'SM', 'TF', 'VA', 'XK', 'YT']
)

assert [exp] == iso4217.parse('Price is 5 €')
Expand Down

0 comments on commit da761f6

Please sign in to comment.