summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMarc Garcia <garcia.marc@gmail.com>2009-08-08 15:29:30 +0000
committerMarc Garcia <garcia.marc@gmail.com>2009-08-08 15:29:30 +0000
commitac70e26bafb47f8a69aa805273724fba29ccc26f (patch)
tree3bea1b9bb80609474c53c852bb113e0fef0e63d4 /tests
parentb6ceeb15958958587df8ee600c026b2251e9c4e0 (diff)
[soc2009/i18n] tests improved, and bugs fixed on tests and because of tests
git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/i18n-improvements@11414 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
-rw-r--r--tests/regressiontests/i18n/tests.py199
1 files changed, 148 insertions, 51 deletions
diff --git a/tests/regressiontests/i18n/tests.py b/tests/regressiontests/i18n/tests.py
index 0ec72dc440..eb19e7f4d3 100644
--- a/tests/regressiontests/i18n/tests.py
+++ b/tests/regressiontests/i18n/tests.py
@@ -69,11 +69,17 @@ Localization of dates and numbers
>>> import datetime
>>> import decimal
+>>> from django.conf import settings
>>> from django.utils.formats import getformat, date_format, number_format, localize
+>>> from django.utils.numberformat import format
>>> from django import template
>>> from django import forms
>>> from django.forms.extras import SelectDateWidget
+>>> old_use_i18n = settings.USE_I18N
+>>> old_use_format_i18n = settings.USE_FORMAT_I18N
+>>> old_use_thousand_separator = settings.USE_THOUSAND_SEPARATOR
+
>>> n = decimal.Decimal('66666.666')
>>> f = 99999.999
>>> d = datetime.date(2009, 12, 31)
@@ -88,14 +94,23 @@ Localization of dates and numbers
Locale independent
->>> number_format(n, decimal_sep='.', decimal_pos=2, grouping=3, thousand_sep=',')
-'66,666.66'
->>> number_format(n, decimal_sep='A', decimal_pos=1, grouping=1, thousand_sep='B')
-'6B6B6B6B6BA6'
+>>> settings.USE_FORMAT_I18N = True
+>>> settings.USE_THOUSAND_SEPARATOR = False
+>>> format(n, decimal_sep='.', decimal_pos=2, grouping=3, thousand_sep=',')
+u'66666.66'
+>>> format(n, decimal_sep='A', decimal_pos=1, grouping=1, thousand_sep='B')
+u'66666A6'
+>>> settings.USE_THOUSAND_SEPARATOR = True
+>>> format(n, decimal_sep='.', decimal_pos=2, grouping=3, thousand_sep=',')
+u'66,666.66'
+>>> format(n, decimal_sep='A', decimal_pos=1, grouping=1, thousand_sep='B')
+u'6B6B6B6B6A6'
-English locale
+Catalan locale with format i18n disabled
+translations will be used, but not formats
->>> activate('en')
+>>> settings.USE_FORMAT_I18N = False
+>>> activate('ca')
>>> getformat('DATE_FORMAT')
'N j, Y'
>>> getformat('FIRST_DAY_OF_WEEK')
@@ -103,40 +118,102 @@ English locale
>>> getformat('DECIMAL_SEPARATOR')
'.'
>>> date_format(d)
-'December 31, 2009'
+u'des. 31, 2009'
>>> date_format(d, 'YEAR_MONTH_FORMAT')
-'December 2009'
->>> date_format(d, 'SHORT_DATETIME_FORMAT')
-'12/31/2009 8:50 p.m.'
+u'desembre 2009'
+>>> date_format(dt, 'SHORT_DATETIME_FORMAT')
+u'12/31/2009 8:50 p.m.'
>>> localize('No localizable')
'No localizable'
>>> localize(n)
-'66666.666'
+Decimal('66666.666')
>>> localize(f)
-'99999.999'
+99999.999
>>> localize(d)
-'December 31, 2009'
+datetime.date(2009, 12, 31)
>>> localize(dt)
-'December 31, 2009, 8:50 p.m.'
+datetime.datetime(2009, 12, 31, 20, 50)
>>> template.Template('{{ n }}').render(ctxt)
-'66666.666'
+u'66666.666'
>>> template.Template('{{ f }}').render(ctxt)
-'99999.999'
+u'99999.999'
>>> template.Template('{{ d }}').render(ctxt)
-'December 31, 2009'
+u'desembre 31, 2009'
>>> template.Template('{{ dt }}').render(ctxt)
-'December 31, 2009, 8:50 p.m.'
+u'desembre 31, 2009, 8:50 p.m.'
>>> template.Template('{{ n|floatformat:2 }}').render(ctxt)
-'66666.66'
+u'66666.67'
>>> template.Template('{{ f|floatformat }}').render(ctxt)
-'99999.9'
+u'100000.0'
>>> template.Template('{{ d|date:"SHORT_DATE_FORMAT" }}').render(ctxt)
-'12/31/2009'
+u'12/31/2009'
>>> template.Template('{{ dt|date:"SHORT_DATETIME_FORMAT" }}').render(ctxt)
-'12/31/2009 8:50 p.m.'
->>> form = I18nForm({'decimal_field': u'66666.666', 'float_field': u'99999.999', 'date_field': u'12/31/2009', 'datetime_field': u'12/31/2009 20:50', 'time_field': u'20:50'})
+u'12/31/2009 8:50 p.m.'
+>>> form = I18nForm({'decimal_field': u'66666,666', 'float_field': u'99999,999', 'date_field': u'12/31/2009', 'datetime_field': u'12/31/2009 20:50', 'time_field': u'20:50'})
+>>> form.is_valid()
+False
+>>> SelectDateWidget().render('mydate', datetime.date(2009, 12, 31))
+u'<select name="mydate_month" id="id_mydate_month">\n<option value="1">gener</option>\n<option value="2">febrer</option>\n<option value="3">mar\xe7</option>\n<option value="4">abril</option>\n<option value="5">maig</option>\n<option value="6">juny</option>\n<option value="7">juliol</option>\n<option value="8">agost</option>\n<option value="9">setembre</option>\n<option value="10">octubre</option>\n<option value="11">novembre</option>\n<option value="12" selected="selected">desembre</option>\n</select>\n<select name="mydate_day" id="id_mydate_day">\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31" selected="selected">31</option>\n</select>\n<select name="mydate_year" id="id_mydate_year">\n<option value="2009" selected="selected">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n<option value="2018">2018</option>\n</select>'
+
+Catalan locale
+
+>>> settings.USE_FORMAT_I18N = True
+>>> activate('ca')
+>>> getformat('DATE_FORMAT')
+'j \de N \de Y'
+>>> getformat('FIRST_DAY_OF_WEEK')
+1
+>>> getformat('DECIMAL_SEPARATOR')
+','
+>>> date_format(d)
+u'31 de desembre de 2009'
+>>> date_format(d, 'YEAR_MONTH_FORMAT')
+u'desembre de 2009'
+>>> date_format(dt, 'SHORT_DATETIME_FORMAT')
+u'31/12/2009 20:50'
+>>> localize('No localizable')
+'No localizable'
+>>> settings.USE_THOUSAND_SEPARATOR = True
+>>> localize(n)
+u'66.666,666'
+>>> localize(f)
+u'99.999,999'
+>>> settings.USE_THOUSAND_SEPARATOR = False
+>>> localize(n)
+u'66666,666'
+>>> localize(f)
+u'99999,999'
+>>> localize(d)
+u'31 de desembre de 2009'
+>>> localize(dt)
+u'31 de desembre de 2009 a les 20:50'
+>>> settings.USE_THOUSAND_SEPARATOR = True
+>>> template.Template('{{ n }}').render(ctxt)
+u'66.666,666'
+>>> template.Template('{{ f }}').render(ctxt)
+u'99.999,999'
+>>> settings.USE_THOUSAND_SEPARATOR = False
+>>> template.Template('{{ n }}').render(ctxt)
+u'66666,666'
+>>> template.Template('{{ f }}').render(ctxt)
+u'99999,999'
+>>> template.Template('{{ d }}').render(ctxt)
+u'31 de desembre de 2009'
+>>> template.Template('{{ dt }}').render(ctxt)
+u'31 de desembre de 2009 a les 20:50'
+>>> template.Template('{{ n|floatformat:2 }}').render(ctxt)
+u'66666,67'
+>>> template.Template('{{ f|floatformat }}').render(ctxt)
+u'100000,0'
+>>> template.Template('{{ d|date:"SHORT_DATE_FORMAT" }}').render(ctxt)
+u'31/12/2009'
+>>> template.Template('{{ dt|date:"SHORT_DATETIME_FORMAT" }}').render(ctxt)
+u'31/12/2009 20:50'
+>>> form = I18nForm({'decimal_field': u'66666,666', 'float_field': u'99999,999', 'date_field': u'31/12/2009', 'datetime_field': u'31/12/2009 20:50', 'time_field': u'20:50'})
+>>> form.is_valid()
+True
>>> form.cleaned_data['decimal_field']
-decimal.Decimal('66666.666')
+Decimal('66666.666')
>>> form.cleaned_data['float_field']
99999.999
>>> form.cleaned_data['date_field']
@@ -146,54 +223,67 @@ datetime.datetime(2009, 12, 31, 20, 50)
>>> form.cleaned_data['time_field']
datetime.time(20, 50)
>>> SelectDateWidget().render('mydate', datetime.date(2009, 12, 31))
-u'<select name="mydate_month" id="id_mydate_month">\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12" selected="selected">December</option>\n</select>\n<select name="mydate_day" id="id_mydate_day">\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31" selected="selected">31</option>\n</select>\n<select name="mydate_year" id="id_mydate_year">\n<option value="2009" selected="selected">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n<option value="2018">2018</option>\n</select>'
+u'<select name="mydate_day" id="id_mydate_day">\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31" selected="selected">31</option>\n</select>\n<select name="mydate_month" id="id_mydate_month">\n<option value="1">gener</option>\n<option value="2">febrer</option>\n<option value="3">mar\xe7</option>\n<option value="4">abril</option>\n<option value="5">maig</option>\n<option value="6">juny</option>\n<option value="7">juliol</option>\n<option value="8">agost</option>\n<option value="9">setembre</option>\n<option value="10">octubre</option>\n<option value="11">novembre</option>\n<option value="12" selected="selected">desembre</option>\n</select>\n<select name="mydate_year" id="id_mydate_year">\n<option value="2009" selected="selected">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n<option value="2018">2018</option>\n</select>'
-Catalan locale
+English locale
->>> activate('ca')
+>>> settings.USE_FORMAT_I18N = True
+>>> activate('en')
>>> getformat('DATE_FORMAT')
-'j \de N \de Y'
+'N j, Y'
>>> getformat('FIRST_DAY_OF_WEEK')
-1
+0
>>> getformat('DECIMAL_SEPARATOR')
-','
+'.'
>>> date_format(d)
-'31 de desembre de 2009'
+u'Dec. 31, 2009'
>>> date_format(d, 'YEAR_MONTH_FORMAT')
-'desembre de 2009'
->>> date_format(d, 'SHORT_DATETIME_FORMAT')
-'31/12/2009 20:50'
+u'December 2009'
+>>> date_format(dt, 'SHORT_DATETIME_FORMAT')
+u'12/31/2009 8:50 p.m.'
>>> localize('No localizable')
'No localizable'
+>>> settings.USE_THOUSAND_SEPARATOR = True
+>>> localize(n)
+u'66,666.666'
+>>> localize(f)
+u'99,999.999'
+>>> settings.USE_THOUSAND_SEPARATOR = False
>>> localize(n)
-'66.666,666'
+u'66666.666'
>>> localize(f)
-'99.999,999'
+u'99999.999'
>>> localize(d)
-'31 de desembre de 2009'
+u'Dec. 31, 2009'
>>> localize(dt)
-'31 de desembre de 2009 a les 20:50'
->>> tplt.render(ctxt)
-'66.666,666 # 99.999,999 # 6 de juliol de 2009 # 6 de juliol de 2009 a les 20:50'
+u'Dec. 31, 2009, 8:50 p.m.'
+>>> settings.USE_THOUSAND_SEPARATOR = True
+>>> template.Template('{{ n }}').render(ctxt)
+u'66,666.666'
+>>> template.Template('{{ f }}').render(ctxt)
+u'99,999.999'
+>>> settings.USE_THOUSAND_SEPARATOR = False
>>> template.Template('{{ n }}').render(ctxt)
-'66666,666'
+u'66666.666'
>>> template.Template('{{ f }}').render(ctxt)
-'99999,999'
+u'99999.999'
>>> template.Template('{{ d }}').render(ctxt)
-'31 de desembre de 2009'
+u'Dec. 31, 2009'
>>> template.Template('{{ dt }}').render(ctxt)
-'31 de desembre de 2009 a les 20:50'
+u'Dec. 31, 2009, 8:50 p.m.'
>>> template.Template('{{ n|floatformat:2 }}').render(ctxt)
-'66666,66'
+u'66666.67'
>>> template.Template('{{ f|floatformat }}').render(ctxt)
-'99999,9'
+u'100000.0'
>>> template.Template('{{ d|date:"SHORT_DATE_FORMAT" }}').render(ctxt)
-'31/12/2009'
+u'12/31/2009'
>>> template.Template('{{ dt|date:"SHORT_DATETIME_FORMAT" }}').render(ctxt)
-'31/12/2009 20:50'
->>> form = I18nForm({'decimal_field': u'66666,666', 'float_field': u'99999,999', 'date_field': u'31/12/2009', 'datetime_field': u'31/12/2009 20:50', 'time_field': u'20:50'})
+u'12/31/2009 8:50 p.m.'
+>>> form = I18nForm({'decimal_field': u'66666.666', 'float_field': u'99999.999', 'date_field': u'12/31/2009', 'datetime_field': u'12/31/2009 20:50', 'time_field': u'20:50'})
+>>> form.is_valid()
+True
>>> form.cleaned_data['decimal_field']
-decimal.Decimal('66666.666')
+Decimal('66666.666')
>>> form.cleaned_data['float_field']
99999.999
>>> form.cleaned_data['date_field']
@@ -203,7 +293,14 @@ datetime.datetime(2009, 12, 31, 20, 50)
>>> form.cleaned_data['time_field']
datetime.time(20, 50)
>>> SelectDateWidget().render('mydate', datetime.date(2009, 12, 31))
-u'<select name="mydate_day" id="id_mydate_day">\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31" selected="selected">31</option>\n</select>\n<select name="mydate_month" id="id_mydate_month">\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12" selected="selected">December</option>\n</select>\n<select name="mydate_year" id="id_mydate_year">\n<option value="2009" selected="selected">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n<option value="2018">2018</option>\n</select>'
+u'<select name="mydate_month" id="id_mydate_month">\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12" selected="selected">December</option>\n</select>\n<select name="mydate_day" id="id_mydate_day">\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31" selected="selected">31</option>\n</select>\n<select name="mydate_year" id="id_mydate_year">\n<option value="2009" selected="selected">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n<option value="2018">2018</option>\n</select>'
+
+Restore defaults
+
+>>> settings.USE_I18N = old_use_i18n
+>>> settings.USE_FORMAT_I18N = old_use_format_i18n
+>>> settings.USE_THOUSAND_SEPARATOR = old_use_thousand_separator
+>>> deactivate()
"""