Changeset 7152
- Timestamp:
- 02/23/08 03:26:11 (7 months ago)
- Files:
-
- django/branches/queryset-refactor/AUTHORS (modified) (1 diff)
- django/branches/queryset-refactor/django/core/management/commands/loaddata.py (modified) (6 diffs)
- django/branches/queryset-refactor/django/db/backends/postgresql/operations.py (modified) (1 diff)
- django/branches/queryset-refactor/django/db/models/fields/__init__.py (modified) (1 diff)
- django/branches/queryset-refactor/django/utils/datastructures.py (modified) (1 diff)
- django/branches/queryset-refactor/setup.py (modified) (2 diffs)
- django/branches/queryset-refactor/tests/regressiontests/datastructures/tests.py (modified) (1 diff)
- django/branches/queryset-refactor/tests/regressiontests/datatypes/models.py (modified) (1 diff)
- django/branches/queryset-refactor/tests/regressiontests/fixtures_regress/fixtures/absolute.json (added)
- django/branches/queryset-refactor/tests/regressiontests/fixtures_regress/models.py (modified) (3 diffs)
- django/branches/queryset-refactor/tests/regressiontests/string_lookup/models.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/queryset-refactor/AUTHORS
r7136 r7152 72 72 Andrew Brehaut <http://brehaut.net/blog> 73 73 brut.alll@gmail.com 74 btoll@bestweb.net 74 75 Jonathan Buchanan <jonathan.buchanan@gmail.com> 75 76 Can Burak Çilingir <canburak@cs.bilgi.edu.tr> django/branches/queryset-refactor/django/core/management/commands/loaddata.py
r7086 r7152 31 31 32 32 # Keep a count of the installed objects and fixtures 33 count = [0, 0] 33 fixture_count = 0 34 object_count = 0 34 35 models = set() 35 36 … … 66 67 print "Skipping fixture '%s': %s is not a known serialization format" % (fixture_name, format) 67 68 68 for fixture_dir in app_fixtures + list(settings.FIXTURE_DIRS) + ['']: 69 if os.path.isabs(fixture_name): 70 fixture_dirs = [fixture_name] 71 else: 72 fixture_dirs = app_fixtures + list(settings.FIXTURE_DIRS) + [''] 73 74 for fixture_dir in fixture_dirs: 69 75 if verbosity > 1: 70 76 print "Checking %s for fixtures..." % humanize(fixture_dir) … … 87 93 return 88 94 else: 89 count[1]+= 195 fixture_count += 1 90 96 if verbosity > 0: 91 97 print "Installing %s fixture '%s' from %s." % \ … … 94 100 objects = serializers.deserialize(format, fixture) 95 101 for obj in objects: 96 count[0]+= 1102 object_count += 1 97 103 models.add(obj.object.__class__) 98 104 obj.save() … … 114 120 (format, fixture_name, humanize(fixture_dir)) 115 121 116 if count[0]> 0:122 if object_count > 0: 117 123 sequence_sql = connection.ops.sequence_reset_sql(self.style, models) 118 124 if sequence_sql: … … 125 131 transaction.leave_transaction_management() 126 132 127 if count[0]== 0:133 if object_count == 0: 128 134 if verbosity >= 2: 129 135 print "No fixtures found." 130 136 else: 131 137 if verbosity > 0: 132 print "Installed %d object(s) from %d fixture(s)" % tuple(count)138 print "Installed %d object(s) from %d fixture(s)" % (object_count, fixture_count) django/branches/queryset-refactor/django/db/backends/postgresql/operations.py
r7147 r7152 27 27 def deferrable_sql(self): 28 28 return " DEFERRABLE INITIALLY DEFERRED" 29 30 def field_cast_sql(self, db_type): 31 if db_type == 'inet': 32 return 'CAST(%s AS TEXT)' 33 return '%s' 29 34 30 35 def last_insert_id(self, cursor, table_name, pk_name): django/branches/queryset-refactor/django/db/models/fields/__init__.py
r7136 r7152 244 244 except ValueError: 245 245 raise ValueError("The __year lookup type requires an integer argument") 246 return ['%s-01-01 00:00:00' % value, '%s-12-31 23:59:59.999999' % value] 246 if settings.DATABASE_ENGINE == 'sqlite3': 247 first = '%s-01-01' 248 else: 249 first = '%s-01-01 00:00:00' 250 return [first % value, '%s-12-31 23:59:59.999999' % value] 247 251 raise TypeError("Field has invalid lookup: %s" % lookup_type) 248 252 django/branches/queryset-refactor/django/utils/datastructures.py
r7136 r7152 155 155 """ 156 156 return '{%s}' % ', '.join(['%r: %r' % (k, v) for k, v in self.items()]) 157 158 def clear(self): 159 super(SortedDict, self).clear() 160 self.keyOrder = [] 157 161 158 162 class MultiValueDictKeyError(KeyError): django/branches/queryset-refactor/setup.py
r5876 r7152 28 28 packages, data_files = [], [] 29 29 root_dir = os.path.dirname(__file__) 30 django_dir = os.path.join(root_dir, 'django') 31 pieces = fullsplit(root_dir) 32 if pieces[-1] == '': 33 len_root_dir = len(pieces) - 1 34 else: 35 len_root_dir = len(pieces) 30 if root_dir != '': 31 os.chdir(root_dir) 32 django_dir = 'django' 36 33 37 34 for dirpath, dirnames, filenames in os.walk(django_dir): … … 40 37 if dirname.startswith('.'): del dirnames[i] 41 38 if '__init__.py' in filenames: 42 packages.append('.'.join(fullsplit(dirpath) [len_root_dir:]))39 packages.append('.'.join(fullsplit(dirpath))) 43 40 elif filenames: 44 41 data_files.append([dirpath, [os.path.join(dirpath, f) for f in filenames]]) django/branches/queryset-refactor/tests/regressiontests/datastructures/tests.py
r7136 r7152 102 102 {1: 'one', 0: 'zero', 2: 'two'} 103 103 104 >>> d.clear() 105 >>> d 106 {} 107 >>> d.keyOrder 108 [] 109 104 110 ### DotExpandedDict ############################################################ 105 111 django/branches/queryset-refactor/tests/regressiontests/datatypes/models.py
r5803 r7152 57 57 >>> d3.consumed_at 58 58 datetime.datetime(2007, 4, 20, 16, 19, 59) 59 60 # Year boundary tests (ticket #3689) 61 62 >>> 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)) 63 >>> d.save() 64 >>> 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)) 65 >>> d1.save() 66 67 >>> Donut.objects.filter(baked_date__year=2007) 68 [<Donut: Date Test 2007>] 69 70 >>> Donut.objects.filter(baked_date__year=2006) 71 [<Donut: Date Test 2006>] 72 73 >>> Donut.objects.filter(consumed_at__year=2007).order_by('name') 74 [<Donut: Apple Fritter>, <Donut: Date Test 2007>] 75 76 >>> Donut.objects.filter(consumed_at__year=2006) 77 [<Donut: Date Test 2006>] 78 79 >>> Donut.objects.filter(consumed_at__year=2005) 80 [] 81 82 >>> Donut.objects.filter(consumed_at__year=2008) 83 [] 84 59 85 """} django/branches/queryset-refactor/tests/regressiontests/fixtures_regress/models.py
r6339 r7152 2 2 from django.contrib.auth.models import User 3 3 from django.conf import settings 4 import os 4 5 5 6 class Animal(models.Model): … … 29 30 return unicode(name) + u' is owned by ' + unicode(self.owner) 30 31 32 class Absolute(models.Model): 33 name = models.CharField(max_length=40) 34 35 load_count = 0 36 37 def __init__(self, *args, **kwargs): 38 super(Absolute, self).__init__(*args, **kwargs) 39 Absolute.load_count += 1 40 41 31 42 __test__ = {'API_TESTS':""" 32 43 >>> from django.core import management … … 50 61 [<Stuff: None is owned by None>] 51 62 63 ############################################### 64 # Regression test for ticket #6436 -- 65 # os.path.join will throw away the initial parts of a path if it encounters 66 # an absolute path. This means that if a fixture is specified as an absolute path, 67 # we need to make sure we don't discover the absolute path in every fixture directory. 68 69 >>> load_absolute_path = os.path.join(os.path.dirname(__file__), 'fixtures', 'absolute.json') 70 >>> management.call_command('loaddata', load_absolute_path, verbosity=0) 71 >>> Absolute.load_count 72 1 73 52 74 """} django/branches/queryset-refactor/tests/regressiontests/string_lookup/models.py
r6857 r7152 40 40 name = models.CharField(max_length=50) 41 41 text = models.TextField() 42 submitted_from = models.IPAddressField(blank=True, null=True) 42 43 43 44 def __str__(self): … … 99 100 >>> Article.objects.get(text__contains='quick brown fox') 100 101 <Article: Article Test> 102 103 # Regression test for #708: "like" queries on IP address fields require casting 104 # to text (on PostgreSQL). 105 >>> Article(name='IP test', text='The body', submitted_from='192.0.2.100').save() 106 >>> Article.objects.filter(submitted_from__contains='192.0.2') 107 [<Article: Article IP test>] 108 101 109 """}
