Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug: Apple doesn't support passing both a currencyCode and numberStyle #37

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .cache/v/cache/lastfailed
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
Copy link
Collaborator

@mbaechtold mbaechtold Dec 16, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please add a line to the .gitignore file, so this file does is added to the git repo:

# Unit test / coverage reports
.coverage
.tox
.cache   # <--- Add this line.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, but unfortunately I forgot to mention that you must delete this file too.

7 changes: 6 additions & 1 deletion passbook/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,12 @@ def __init__(self, key, value, label='', currencyCode=''):
self.currencyCode = currencyCode # ISO 4217 currency code

def json_dict(self):
return self.__dict__
json_dictionary = self.__dict__
# if the consumer provides both a style and currency, only encode the currency code
# apple will reject the pass otherwise
if json_dictionary.get('currencyCode') and json_dictionary.get('numberStyle'):
json_dictionary.pop('numberStyle', None)
return json_dictionary


class Barcode(object):
Expand Down
36 changes: 35 additions & 1 deletion passbook/test/test_passbook.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from M2Crypto import m2
from path import Path

from passbook.models import Barcode, BarcodeFormat, Pass, StoreCard
from passbook.models import Barcode, BarcodeFormat, CurrencyField, Pass, StoreCard

cwd = Path(__file__).parent

Expand Down Expand Up @@ -98,6 +98,40 @@ def test_auxiliary_fields():
assert pass_json['storeCard']['auxiliaryFields'][0]['label'] == 'Famous Inc.'


def test_with_currency_field():
passfile = create_shell_pass()
balance_field = CurrencyField(
'balance',
float(22.00),
'test label',
'USD',
)
balance_field.changeMessage = 'Balance changed to %@.'
passfile.passInformation.headerFields.append(balance_field)
passfile.passInformation.addAuxiliaryField('aux1', 'VIP Store Card', 'Famous Inc.')
pass_json = passfile.json_dict()
assert 'numberStyle' not in pass_json['storeCard']['headerFields'][0]
assert 'currencyCode' in pass_json['storeCard']['headerFields'][0]


def test_missing_currency_field():
passfile = create_shell_pass()
balance_field = CurrencyField(
'balance',
float(22.00),
'test label',
None
)
del balance_field.currencyCode
balance_field.changeMessage = 'Balance changed to %@.'
passfile.passInformation.headerFields.append(balance_field)
passfile.passInformation.addAuxiliaryField('aux1', 'VIP Store Card', 'Famous Inc.')
pass_json = passfile.json_dict()
print(pass_json)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this line should be removed?

assert 'numberStyle' in pass_json['storeCard']['headerFields'][0]
assert 'currencyCode' not in pass_json['storeCard']['headerFields'][0]


def test_code128_pass():
"""
This test is to create a pass with a new code128 format,
Expand Down