mirror of
https://github.com/internetarchive/warcprox.git
synced 2025-01-18 13:22:09 +01:00
turns out we want populate_defaults to happen in __init__, fix so things work right
This commit is contained in:
parent
3fd2e5cf60
commit
7b17ed1057
@ -164,12 +164,10 @@ class Document(dict, object):
|
|||||||
'''
|
'''
|
||||||
if pk is None:
|
if pk is None:
|
||||||
return None
|
return None
|
||||||
doc = cls(rr)
|
d = rr.table(cls.table).get(pk).run()
|
||||||
doc[doc.pk_field] = pk
|
if d is None:
|
||||||
try:
|
|
||||||
doc.refresh()
|
|
||||||
except KeyError:
|
|
||||||
return None
|
return None
|
||||||
|
doc = cls(rr, d)
|
||||||
return doc
|
return doc
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -200,8 +198,9 @@ class Document(dict, object):
|
|||||||
dict.__setattr__(self, 'rr', rr)
|
dict.__setattr__(self, 'rr', rr)
|
||||||
self._pk = None
|
self._pk = None
|
||||||
self._clear_updates()
|
self._clear_updates()
|
||||||
for k in d:
|
for k in d or {}:
|
||||||
self[k] = watch(d[k], callback=self._updated, field=k)
|
self[k] = watch(d[k], callback=self._updated, field=k)
|
||||||
|
self.populate_defaults()
|
||||||
|
|
||||||
def _clear_updates(self):
|
def _clear_updates(self):
|
||||||
self._updates = {}
|
self._updates = {}
|
||||||
@ -293,7 +292,6 @@ class Document(dict, object):
|
|||||||
touched.
|
touched.
|
||||||
'''
|
'''
|
||||||
should_insert = False
|
should_insert = False
|
||||||
self.populate_defaults()
|
|
||||||
try:
|
try:
|
||||||
self[self.pk_field] # raises KeyError if missing
|
self[self.pk_field] # raises KeyError if missing
|
||||||
if self._updates:
|
if self._updates:
|
||||||
|
2
setup.py
2
setup.py
@ -3,7 +3,7 @@ import codecs
|
|||||||
|
|
||||||
setuptools.setup(
|
setuptools.setup(
|
||||||
name='doublethink',
|
name='doublethink',
|
||||||
version='0.2.0.dev70',
|
version='0.2.0.dev71',
|
||||||
packages=['doublethink'],
|
packages=['doublethink'],
|
||||||
classifiers=[
|
classifiers=[
|
||||||
'Programming Language :: Python :: 2.7',
|
'Programming Language :: Python :: 2.7',
|
||||||
|
@ -287,14 +287,16 @@ def test_default_values(rr):
|
|||||||
|
|
||||||
Person.table_ensure(rr)
|
Person.table_ensure(rr)
|
||||||
p = Person(rr, {})
|
p = Person(rr, {})
|
||||||
assert not "age" in p
|
|
||||||
assert p.age is None
|
|
||||||
p.save()
|
|
||||||
assert p.age == 0
|
assert p.age == 0
|
||||||
|
assert not p.id
|
||||||
|
p.save()
|
||||||
assert p.id
|
assert p.id
|
||||||
|
assert p.age == 0
|
||||||
|
|
||||||
p.age = 50
|
p.age = 50
|
||||||
|
assert p.age == 50
|
||||||
p.save()
|
p.save()
|
||||||
|
assert p.age == 50
|
||||||
|
|
||||||
q = Person.load(rr, p.id)
|
q = Person.load(rr, p.id)
|
||||||
assert q.age == 50
|
assert q.age == 50
|
||||||
|
Loading…
x
Reference in New Issue
Block a user