Skip to content

Commit

Permalink
Add more tests (#296)
Browse files Browse the repository at this point in the history
* Add more tests

* Fix
  • Loading branch information
Stranger6667 committed May 20, 2017
1 parent 813c785 commit 84fb375
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 8 deletions.
18 changes: 14 additions & 4 deletions djmoney/admin.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# coding: utf-8
import django.contrib.admin.utils as admin_utils
from django import VERSION

from ._compat import text_type
from .models.fields import MoneyField
Expand All @@ -8,9 +9,18 @@
def setup_admin_integration():
original_display_for_field = admin_utils.display_for_field

def display_for_field(value, field, empty):
if isinstance(field, MoneyField):
return text_type(value)
return original_display_for_field(value, field, empty)
if VERSION[:2] == (1, 8):

def display_for_field(value, field):
if isinstance(field, MoneyField):
return text_type(value)
return original_display_for_field(value, field)

else:

def display_for_field(value, field, empty):
if isinstance(field, MoneyField):
return text_type(value)
return original_display_for_field(value, field, empty)

admin_utils.display_for_field = display_for_field
4 changes: 1 addition & 3 deletions djmoney/forms/widgets.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,9 @@

class MoneyWidget(MultiWidget):

def __init__(self, choices=CURRENCY_CHOICES, amount_widget=None, currency_widget=None, default_currency=None,
def __init__(self, choices=CURRENCY_CHOICES, amount_widget=TextInput, currency_widget=None, default_currency=None,
*args, **kwargs):
self.default_currency = default_currency
if not amount_widget:
amount_widget = TextInput
if not currency_widget:
currency_widget = Select(choices=choices)
widgets = (amount_widget, currency_widget)
Expand Down
17 changes: 16 additions & 1 deletion tests/test_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from __future__ import unicode_literals

import django.contrib.admin.utils as admin_utils
from django import VERSION

import pytest

Expand All @@ -11,6 +12,16 @@


MONEY_FIELD = ModelWithVanillaMoneyField._meta.get_field('money')
INTEGER_FIELD = ModelWithVanillaMoneyField._meta.get_field('integer')


def get_args(value, field):
"""
Constructs arguments for `display_for_field`.
"""
if VERSION[:2] == (1, 8):
return value, field
return value, field, ''


@pytest.mark.parametrize('value, kwargs, expected', (
Expand All @@ -23,4 +34,8 @@
def test_display_for_field(settings, value, kwargs, expected):
for k, v in kwargs.items():
setattr(settings, k, v)
assert admin_utils.display_for_field(value, MONEY_FIELD, '') == expected
assert admin_utils.display_for_field(*get_args(value, MONEY_FIELD)) == expected


def test_default_display():
assert admin_utils.display_for_field(*get_args(10, INTEGER_FIELD)) == '10'

0 comments on commit 84fb375

Please sign in to comment.