diff options
Diffstat (limited to 'tests/regressiontests')
| -rw-r--r-- | tests/regressiontests/datastructures/tests.py | 6 | ||||
| -rw-r--r-- | tests/regressiontests/datatypes/models.py | 26 | ||||
| -rw-r--r-- | tests/regressiontests/fixtures_regress/fixtures/absolute.json | 9 | ||||
| -rw-r--r-- | tests/regressiontests/fixtures_regress/models.py | 22 | ||||
| -rw-r--r-- | tests/regressiontests/string_lookup/models.py | 8 |
5 files changed, 71 insertions, 0 deletions
diff --git a/tests/regressiontests/datastructures/tests.py b/tests/regressiontests/datastructures/tests.py index 172057f080..b51b4b1233 100644 --- a/tests/regressiontests/datastructures/tests.py +++ b/tests/regressiontests/datastructures/tests.py @@ -101,6 +101,12 @@ Init from sequence of tuples >>> print repr(d) {1: 'one', 0: 'zero', 2: 'two'} +>>> d.clear() +>>> d +{} +>>> d.keyOrder +[] + ### DotExpandedDict ############################################################ >>> d = DotExpandedDict({'person.1.firstname': ['Simon'], 'person.1.lastname': ['Willison'], 'person.2.firstname': ['Adrian'], 'person.2.lastname': ['Holovaty']}) diff --git a/tests/regressiontests/datatypes/models.py b/tests/regressiontests/datatypes/models.py index ff9666bc0c..9ebb6402e2 100644 --- a/tests/regressiontests/datatypes/models.py +++ b/tests/regressiontests/datatypes/models.py @@ -56,4 +56,30 @@ datetime.date(1938, 6, 4) datetime.time(5, 30) >>> d3.consumed_at datetime.datetime(2007, 4, 20, 16, 19, 59) + +# Year boundary tests (ticket #3689) + +>>> d = Donut(name='Date Test 2007', baked_date=datetime.datetime(year=2007, month=12, day=31), consumed_at=datetime.datetime(year=2007, month=12, day=31, hour=23, minute=59, second=59)) +>>> d.save() +>>> d1 = Donut(name='Date Test 2006', baked_date=datetime.datetime(year=2006, month=1, day=1), consumed_at=datetime.datetime(year=2006, month=1, day=1)) +>>> d1.save() + +>>> Donut.objects.filter(baked_date__year=2007) +[<Donut: Date Test 2007>] + +>>> Donut.objects.filter(baked_date__year=2006) +[<Donut: Date Test 2006>] + +>>> Donut.objects.filter(consumed_at__year=2007).order_by('name') +[<Donut: Apple Fritter>, <Donut: Date Test 2007>] + +>>> Donut.objects.filter(consumed_at__year=2006) +[<Donut: Date Test 2006>] + +>>> Donut.objects.filter(consumed_at__year=2005) +[] + +>>> Donut.objects.filter(consumed_at__year=2008) +[] + """} diff --git a/tests/regressiontests/fixtures_regress/fixtures/absolute.json b/tests/regressiontests/fixtures_regress/fixtures/absolute.json new file mode 100644 index 0000000000..37ed3f6886 --- /dev/null +++ b/tests/regressiontests/fixtures_regress/fixtures/absolute.json @@ -0,0 +1,9 @@ +[ + { + "pk": "1", + "model": "fixtures_regress.absolute", + "fields": { + "name": "Load Absolute Path Test" + } + } +]
\ No newline at end of file diff --git a/tests/regressiontests/fixtures_regress/models.py b/tests/regressiontests/fixtures_regress/models.py index a62925eb37..144debe05a 100644 --- a/tests/regressiontests/fixtures_regress/models.py +++ b/tests/regressiontests/fixtures_regress/models.py @@ -1,6 +1,7 @@ from django.db import models from django.contrib.auth.models import User from django.conf import settings +import os class Animal(models.Model): name = models.CharField(max_length=150) @@ -28,6 +29,16 @@ class Stuff(models.Model): name = None return unicode(name) + u' is owned by ' + unicode(self.owner) +class Absolute(models.Model): + name = models.CharField(max_length=40) + + load_count = 0 + + def __init__(self, *args, **kwargs): + super(Absolute, self).__init__(*args, **kwargs) + Absolute.load_count += 1 + + __test__ = {'API_TESTS':""" >>> from django.core import management @@ -49,4 +60,15 @@ __test__ = {'API_TESTS':""" >>> Stuff.objects.all() [<Stuff: None is owned by None>] +############################################### +# Regression test for ticket #6436 -- +# os.path.join will throw away the initial parts of a path if it encounters +# an absolute path. This means that if a fixture is specified as an absolute path, +# we need to make sure we don't discover the absolute path in every fixture directory. + +>>> load_absolute_path = os.path.join(os.path.dirname(__file__), 'fixtures', 'absolute.json') +>>> management.call_command('loaddata', load_absolute_path, verbosity=0) +>>> Absolute.load_count +1 + """} diff --git a/tests/regressiontests/string_lookup/models.py b/tests/regressiontests/string_lookup/models.py index 9deeb18763..1bdb2d4452 100644 --- a/tests/regressiontests/string_lookup/models.py +++ b/tests/regressiontests/string_lookup/models.py @@ -39,6 +39,7 @@ class Base(models.Model): class Article(models.Model): name = models.CharField(max_length=50) text = models.TextField() + submitted_from = models.IPAddressField(blank=True, null=True) def __str__(self): return "Article %s" % self.name @@ -98,4 +99,11 @@ __test__ = {'API_TESTS': ur""" >>> Article.objects.get(text__contains='quick brown fox') <Article: Article Test> + +# Regression test for #708: "like" queries on IP address fields require casting +# to text (on PostgreSQL). +>>> Article(name='IP test', text='The body', submitted_from='192.0.2.100').save() +>>> Article.objects.filter(submitted_from__contains='192.0.2') +[<Article: Article IP test>] + """} |
