travis badge in README, thanks niphlod
This commit is contained in:
@@ -5,7 +5,7 @@ all:
|
|||||||
clean:
|
clean:
|
||||||
rm -f httpserver.log
|
rm -f httpserver.log
|
||||||
rm -f parameters*.py
|
rm -f parameters*.py
|
||||||
rm -f -r applications/*/compiled
|
rm -f -r applications/*/compiled
|
||||||
find ./ -name '*~' -exec rm -f {} \;
|
find ./ -name '*~' -exec rm -f {} \;
|
||||||
find ./ -name '*.orig' -exec rm -f {} \;
|
find ./ -name '*.orig' -exec rm -f {} \;
|
||||||
find ./ -name '*.rej' -exec rm -f {} \;
|
find ./ -name '*.rej' -exec rm -f {} \;
|
||||||
|
|||||||
@@ -6,6 +6,11 @@ It is written and programmable in Python. LGPLv3 License
|
|||||||
|
|
||||||
Learn more at http://web2py.com
|
Learn more at http://web2py.com
|
||||||
|
|
||||||
|
|
||||||
|
## Tests
|
||||||
|
|
||||||
|
[](https://travis-ci.org/web2py/web2py)
|
||||||
|
|
||||||
## Installation Instructions
|
## Installation Instructions
|
||||||
|
|
||||||
To start web2py there is NO NEED to install it. Just unzip and do:
|
To start web2py there is NO NEED to install it. Just unzip and do:
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
Version 2.4.4-stable+timestamp.2013.03.15.14.54.45
|
Version 2.4.4-stable+timestamp.2013.03.15.15.11.13
|
||||||
|
|||||||
+64
-48
@@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
|
import glob
|
||||||
if os.path.isdir('gluon'):
|
if os.path.isdir('gluon'):
|
||||||
sys.path.append(os.path.realpath('gluon'))
|
sys.path.append(os.path.realpath('gluon'))
|
||||||
else:
|
else:
|
||||||
@@ -19,6 +20,11 @@ except:
|
|||||||
from io import StringIO
|
from io import StringIO
|
||||||
from dal import DAL, Field, Table, SQLALL
|
from dal import DAL, Field, Table, SQLALL
|
||||||
|
|
||||||
|
#for travis-ci
|
||||||
|
DEFAULT_URI = os.environ.get('DB', 'sqlite:memory')
|
||||||
|
print 'Testing against %s engine (%s)' % (DEFAULT_URI.partition(':')[0], DEFAULT_URI)
|
||||||
|
|
||||||
|
|
||||||
ALLOWED_DATATYPES = [
|
ALLOWED_DATATYPES = [
|
||||||
'string',
|
'string',
|
||||||
'text',
|
'text',
|
||||||
@@ -41,6 +47,8 @@ def setUpModule():
|
|||||||
def tearDownModule():
|
def tearDownModule():
|
||||||
if os.path.isfile('sql.log'):
|
if os.path.isfile('sql.log'):
|
||||||
os.unlink('sql.log')
|
os.unlink('sql.log')
|
||||||
|
for a in glob.glob('*.table'):
|
||||||
|
os.unlink(a)
|
||||||
|
|
||||||
|
|
||||||
class TestFields(unittest.TestCase):
|
class TestFields(unittest.TestCase):
|
||||||
@@ -96,7 +104,7 @@ class TestFields(unittest.TestCase):
|
|||||||
isinstance(f.formatter(datetime.datetime.now()), str)
|
isinstance(f.formatter(datetime.datetime.now()), str)
|
||||||
|
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
db = DAL('sqlite:memory:')
|
db = DAL(DEFAULT_URI)
|
||||||
for ft in ['string', 'text', 'password', 'upload', 'blob']:
|
for ft in ['string', 'text', 'password', 'upload', 'blob']:
|
||||||
db.define_table('t', Field('a', ft, default=''))
|
db.define_table('t', Field('a', ft, default=''))
|
||||||
self.assertEqual(db.t.insert(a='x'), 1)
|
self.assertEqual(db.t.insert(a='x'), 1)
|
||||||
@@ -198,7 +206,7 @@ class TestTable(unittest.TestCase):
|
|||||||
in str(persons.ALL))
|
in str(persons.ALL))
|
||||||
|
|
||||||
def testTableAlias(self):
|
def testTableAlias(self):
|
||||||
db = DAL('sqlite:memory:')
|
db = DAL(DEFAULT_URI)
|
||||||
persons = Table(db, 'persons', Field('firstname',
|
persons = Table(db, 'persons', Field('firstname',
|
||||||
'string'), Field('lastname', 'string'))
|
'string'), Field('lastname', 'string'))
|
||||||
aliens = persons.with_alias('aliens')
|
aliens = persons.with_alias('aliens')
|
||||||
@@ -221,7 +229,7 @@ class TestTable(unittest.TestCase):
|
|||||||
class TestInsert(unittest.TestCase):
|
class TestInsert(unittest.TestCase):
|
||||||
|
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
db = DAL('sqlite:memory:')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('t', Field('a'))
|
db.define_table('t', Field('a'))
|
||||||
self.assertEqual(db.t.insert(a='1'), 1)
|
self.assertEqual(db.t.insert(a='1'), 1)
|
||||||
self.assertEqual(db.t.insert(a='1'), 2)
|
self.assertEqual(db.t.insert(a='1'), 2)
|
||||||
@@ -236,7 +244,7 @@ class TestInsert(unittest.TestCase):
|
|||||||
class TestSelect(unittest.TestCase):
|
class TestSelect(unittest.TestCase):
|
||||||
|
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
db = DAL('sqlite:memory:')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('t', Field('a'))
|
db.define_table('t', Field('a'))
|
||||||
self.assertEqual(db.t.insert(a='1'), 1)
|
self.assertEqual(db.t.insert(a='1'), 1)
|
||||||
self.assertEqual(db.t.insert(a='2'), 2)
|
self.assertEqual(db.t.insert(a='2'), 2)
|
||||||
@@ -267,7 +275,7 @@ class TestSelect(unittest.TestCase):
|
|||||||
class TestBelongs(unittest.TestCase):
|
class TestBelongs(unittest.TestCase):
|
||||||
|
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
db = DAL('sqlite:memory:')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('t', Field('a'))
|
db.define_table('t', Field('a'))
|
||||||
self.assertEqual(db.t.insert(a='1'), 1)
|
self.assertEqual(db.t.insert(a='1'), 1)
|
||||||
self.assertEqual(db.t.insert(a='2'), 2)
|
self.assertEqual(db.t.insert(a='2'), 2)
|
||||||
@@ -287,7 +295,7 @@ class TestBelongs(unittest.TestCase):
|
|||||||
|
|
||||||
class TestContains(unittest.TestCase):
|
class TestContains(unittest.TestCase):
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
db = DAL('sqlite:memory:')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('t', Field('a', 'list:string'))
|
db.define_table('t', Field('a', 'list:string'))
|
||||||
self.assertEqual(db.t.insert(a=['aaa','bbb']), 1)
|
self.assertEqual(db.t.insert(a=['aaa','bbb']), 1)
|
||||||
self.assertEqual(db.t.insert(a=['bbb','ddd']), 2)
|
self.assertEqual(db.t.insert(a=['bbb','ddd']), 2)
|
||||||
@@ -304,7 +312,7 @@ class TestContains(unittest.TestCase):
|
|||||||
class TestLike(unittest.TestCase):
|
class TestLike(unittest.TestCase):
|
||||||
|
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
db = DAL('sqlite:memory:')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('t', Field('a'))
|
db.define_table('t', Field('a'))
|
||||||
self.assertEqual(db.t.insert(a='abc'), 1)
|
self.assertEqual(db.t.insert(a='abc'), 1)
|
||||||
self.assertEqual(len(db(db.t.a.like('a%')).select()), 1)
|
self.assertEqual(len(db(db.t.a.like('a%')).select()), 1)
|
||||||
@@ -330,7 +338,7 @@ class TestLike(unittest.TestCase):
|
|||||||
class TestDatetime(unittest.TestCase):
|
class TestDatetime(unittest.TestCase):
|
||||||
|
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
db = DAL('sqlite:memory:')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('t', Field('a', 'datetime'))
|
db.define_table('t', Field('a', 'datetime'))
|
||||||
self.assertEqual(db.t.insert(a=datetime.datetime(1971, 12, 21,
|
self.assertEqual(db.t.insert(a=datetime.datetime(1971, 12, 21,
|
||||||
11, 30)), 1)
|
11, 30)), 1)
|
||||||
@@ -353,7 +361,7 @@ class TestDatetime(unittest.TestCase):
|
|||||||
class TestExpressions(unittest.TestCase):
|
class TestExpressions(unittest.TestCase):
|
||||||
|
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
db = DAL('sqlite:memory:')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('t', Field('a', 'integer'))
|
db.define_table('t', Field('a', 'integer'))
|
||||||
self.assertEqual(db.t.insert(a=1), 1)
|
self.assertEqual(db.t.insert(a=1), 1)
|
||||||
self.assertEqual(db.t.insert(a=2), 2)
|
self.assertEqual(db.t.insert(a=2), 2)
|
||||||
@@ -366,7 +374,7 @@ class TestExpressions(unittest.TestCase):
|
|||||||
class TestJoin(unittest.TestCase):
|
class TestJoin(unittest.TestCase):
|
||||||
|
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
db = DAL('sqlite:memory:')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('t1', Field('a'))
|
db.define_table('t1', Field('a'))
|
||||||
db.define_table('t2', Field('a'), Field('b', db.t1))
|
db.define_table('t2', Field('a'), Field('b', db.t1))
|
||||||
i1 = db.t1.insert(a='1')
|
i1 = db.t1.insert(a='1')
|
||||||
@@ -397,27 +405,27 @@ class TestJoin(unittest.TestCase):
|
|||||||
self.assertEqual(db().select(db.t1.ALL, db.t2.ALL,
|
self.assertEqual(db().select(db.t1.ALL, db.t2.ALL,
|
||||||
left=db.t2.on(db.t1.id == db.t2.b),
|
left=db.t2.on(db.t1.id == db.t2.b),
|
||||||
orderby=db.t1.a | db.t2.a)[3].t2.a, None)
|
orderby=db.t1.a | db.t2.a)[3].t2.a, None)
|
||||||
self.assertEqual(len(db().select(db.t1.ALL, db.t2.id.count(),
|
self.assertEqual(len(db().select(db.t1.a, db.t2.id.count(),
|
||||||
left=db.t2.on(db.t1.id == db.t2.b),
|
left=db.t2.on(db.t1.id == db.t2.b),
|
||||||
orderby=db.t1.a | db.t2.a, groupby=db.t1.a)),
|
orderby=db.t1.a, groupby=db.t1.a)),
|
||||||
3)
|
3)
|
||||||
self.assertEqual(db().select(db.t1.ALL, db.t2.id.count(),
|
self.assertEqual(db().select(db.t1.a, db.t2.id.count(),
|
||||||
left=db.t2.on(db.t1.id == db.t2.b),
|
left=db.t2.on(db.t1.id == db.t2.b),
|
||||||
orderby=db.t1.a | db.t2.a,
|
orderby=db.t1.a,
|
||||||
groupby=db.t1.a)[0]._extra[db.t2.id.count()],
|
groupby=db.t1.a)[0]._extra[db.t2.id.count()],
|
||||||
1)
|
1)
|
||||||
self.assertEqual(db().select(db.t1.ALL, db.t2.id.count(),
|
self.assertEqual(db().select(db.t1.a, db.t2.id.count(),
|
||||||
left=db.t2.on(db.t1.id == db.t2.b),
|
left=db.t2.on(db.t1.id == db.t2.b),
|
||||||
orderby=db.t1.a | db.t2.a,
|
orderby=db.t1.a,
|
||||||
groupby=db.t1.a)[1]._extra[db.t2.id.count()],
|
groupby=db.t1.a)[1]._extra[db.t2.id.count()],
|
||||||
2)
|
2)
|
||||||
self.assertEqual(db().select(db.t1.ALL, db.t2.id.count(),
|
self.assertEqual(db().select(db.t1.a, db.t2.id.count(),
|
||||||
left=db.t2.on(db.t1.id == db.t2.b),
|
left=db.t2.on(db.t1.id == db.t2.b),
|
||||||
orderby=db.t1.a | db.t2.a,
|
orderby=db.t1.a,
|
||||||
groupby=db.t1.a)[2]._extra[db.t2.id.count()],
|
groupby=db.t1.a)[2]._extra[db.t2.id.count()],
|
||||||
0)
|
0)
|
||||||
db.t1.drop()
|
|
||||||
db.t2.drop()
|
db.t2.drop()
|
||||||
|
db.t1.drop()
|
||||||
|
|
||||||
db.define_table('person',Field('name'))
|
db.define_table('person',Field('name'))
|
||||||
id = db.person.insert(name="max")
|
id = db.person.insert(name="max")
|
||||||
@@ -434,7 +442,7 @@ class TestJoin(unittest.TestCase):
|
|||||||
class TestMinMaxSum(unittest.TestCase):
|
class TestMinMaxSum(unittest.TestCase):
|
||||||
|
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
db = DAL('sqlite:memory:')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('t', Field('a', 'integer'))
|
db.define_table('t', Field('a', 'integer'))
|
||||||
self.assertEqual(db.t.insert(a=1), 1)
|
self.assertEqual(db.t.insert(a=1), 1)
|
||||||
self.assertEqual(db.t.insert(a=2), 2)
|
self.assertEqual(db.t.insert(a=2), 2)
|
||||||
@@ -456,7 +464,7 @@ class TestCache(unittest.TestCase):
|
|||||||
def testRun(self):
|
def testRun(self):
|
||||||
from cache import CacheInRam
|
from cache import CacheInRam
|
||||||
cache = CacheInRam()
|
cache = CacheInRam()
|
||||||
db = DAL('sqlite:memory:')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('t', Field('a'))
|
db.define_table('t', Field('a'))
|
||||||
db.t.insert(a='1')
|
db.t.insert(a='1')
|
||||||
r0 = db().select(db.t.ALL)
|
r0 = db().select(db.t.ALL)
|
||||||
@@ -474,21 +482,21 @@ class TestCache(unittest.TestCase):
|
|||||||
class TestMigrations(unittest.TestCase):
|
class TestMigrations(unittest.TestCase):
|
||||||
|
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
db = DAL('sqlite://.storage.db')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('t', Field('a'), migrate='.storage.table')
|
db.define_table('t', Field('a'), migrate='.storage.table')
|
||||||
db.commit()
|
db.commit()
|
||||||
db.close()
|
db.close()
|
||||||
db = DAL('sqlite://.storage.db')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('t', Field('a'), Field('b'),
|
db.define_table('t', Field('a'), Field('b'),
|
||||||
migrate='.storage.table')
|
migrate='.storage.table')
|
||||||
db.commit()
|
db.commit()
|
||||||
db.close()
|
db.close()
|
||||||
db = DAL('sqlite://.storage.db')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('t', Field('a'), Field('b', 'text'),
|
db.define_table('t', Field('a'), Field('b', 'text'),
|
||||||
migrate='.storage.table')
|
migrate='.storage.table')
|
||||||
db.commit()
|
db.commit()
|
||||||
db.close()
|
db.close()
|
||||||
db = DAL('sqlite://.storage.db')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('t', Field('a'), migrate='.storage.table')
|
db.define_table('t', Field('a'), migrate='.storage.table')
|
||||||
db.t.drop()
|
db.t.drop()
|
||||||
db.commit()
|
db.commit()
|
||||||
@@ -500,10 +508,10 @@ class TestMigrations(unittest.TestCase):
|
|||||||
if os.path.exists('.storage.table'):
|
if os.path.exists('.storage.table'):
|
||||||
os.unlink('.storage.table')
|
os.unlink('.storage.table')
|
||||||
|
|
||||||
class TestReferece(unittest.TestCase):
|
class TestReference(unittest.TestCase):
|
||||||
|
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
db = DAL('sqlite:memory:')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('t', Field('name'), Field('a','reference t'))
|
db.define_table('t', Field('name'), Field('a','reference t'))
|
||||||
db.commit()
|
db.commit()
|
||||||
x = db.t.insert(name='max')
|
x = db.t.insert(name='max')
|
||||||
@@ -523,7 +531,7 @@ class TestReferece(unittest.TestCase):
|
|||||||
class TestClientLevelOps(unittest.TestCase):
|
class TestClientLevelOps(unittest.TestCase):
|
||||||
|
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
db = DAL('sqlite:memory:')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('t', Field('a'))
|
db.define_table('t', Field('a'))
|
||||||
db.commit()
|
db.commit()
|
||||||
db.t.insert(a="test")
|
db.t.insert(a="test")
|
||||||
@@ -546,7 +554,7 @@ class TestClientLevelOps(unittest.TestCase):
|
|||||||
class TestVirtualFields(unittest.TestCase):
|
class TestVirtualFields(unittest.TestCase):
|
||||||
|
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
db = DAL('sqlite:memory:')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('t', Field('a'))
|
db.define_table('t', Field('a'))
|
||||||
db.commit()
|
db.commit()
|
||||||
db.t.insert(a="test")
|
db.t.insert(a="test")
|
||||||
@@ -560,7 +568,7 @@ class TestVirtualFields(unittest.TestCase):
|
|||||||
class TestComputedFields(unittest.TestCase):
|
class TestComputedFields(unittest.TestCase):
|
||||||
|
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
db = DAL('sqlite:memory:')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('t',
|
db.define_table('t',
|
||||||
Field('a'),
|
Field('a'),
|
||||||
Field('b',default='x'),
|
Field('b',default='x'),
|
||||||
@@ -574,7 +582,7 @@ class TestComputedFields(unittest.TestCase):
|
|||||||
class TestImportExportFields(unittest.TestCase):
|
class TestImportExportFields(unittest.TestCase):
|
||||||
|
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
db = DAL('sqlite:memory:')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('person', Field('name'))
|
db.define_table('person', Field('name'))
|
||||||
db.define_table('pet',Field('friend',db.person),Field('name'))
|
db.define_table('pet',Field('friend',db.person),Field('name'))
|
||||||
for n in range(2):
|
for n in range(2):
|
||||||
@@ -598,7 +606,7 @@ class TestImportExportFields(unittest.TestCase):
|
|||||||
class TestImportExportUuidFields(unittest.TestCase):
|
class TestImportExportUuidFields(unittest.TestCase):
|
||||||
|
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
db = DAL('sqlite:memory:')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('person', Field('name'),Field('uuid'))
|
db.define_table('person', Field('name'),Field('uuid'))
|
||||||
db.define_table('pet',Field('friend',db.person),Field('name'))
|
db.define_table('pet',Field('friend',db.person),Field('name'))
|
||||||
for n in range(2):
|
for n in range(2):
|
||||||
@@ -622,7 +630,7 @@ class TestImportExportUuidFields(unittest.TestCase):
|
|||||||
class TestDALDictImportExport(unittest.TestCase):
|
class TestDALDictImportExport(unittest.TestCase):
|
||||||
|
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
db = DAL('sqlite:memory:')
|
db = DAL(DEFAULT_URI)
|
||||||
db.define_table('person', Field('name', default="Michael"),Field('uuid'))
|
db.define_table('person', Field('name', default="Michael"),Field('uuid'))
|
||||||
db.define_table('pet',Field('friend',db.person),Field('name'))
|
db.define_table('pet',Field('friend',db.person),Field('name'))
|
||||||
dbdict = db.as_dict(flat=True, sanitize=False)
|
dbdict = db.as_dict(flat=True, sanitize=False)
|
||||||
@@ -635,13 +643,18 @@ class TestDALDictImportExport(unittest.TestCase):
|
|||||||
assert dbdict["items"]["person"]["items"]["name"]["default"] == db.person.name.default
|
assert dbdict["items"]["person"]["items"]["name"]["default"] == db.person.name.default
|
||||||
assert dbdict
|
assert dbdict
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
db2 = DAL(dbdict)
|
db2 = DAL(dbdict)
|
||||||
assert len(db.tables) == len(db2.tables)
|
assert len(db.tables) == len(db2.tables)
|
||||||
assert hasattr(db2, "pet") and isinstance(db2.pet, Table)
|
assert hasattr(db2, "pet") and isinstance(db2.pet, Table)
|
||||||
assert hasattr(db2.pet, "friend") and isinstance(db2.pet.friend, Field)
|
assert hasattr(db2.pet, "friend") and isinstance(db2.pet.friend, Field)
|
||||||
|
db.pet.drop()
|
||||||
|
db.commit()
|
||||||
|
|
||||||
|
db2.commit()
|
||||||
|
|
||||||
have_serializers = True
|
have_serializers = True
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import serializers
|
import serializers
|
||||||
dbjson = db.as_json(sanitize=False)
|
dbjson = db.as_json(sanitize=False)
|
||||||
@@ -649,14 +662,13 @@ class TestDALDictImportExport(unittest.TestCase):
|
|||||||
db3 = DAL(serializers.loads_json(dbjson))
|
db3 = DAL(serializers.loads_json(dbjson))
|
||||||
assert hasattr(db3, "person") and hasattr(db3.person, "uuid") and\
|
assert hasattr(db3, "person") and hasattr(db3.person, "uuid") and\
|
||||||
db3.person.uuid.type == db.person.uuid.type
|
db3.person.uuid.type == db.person.uuid.type
|
||||||
db3.pet.drop()
|
|
||||||
db3.person.drop()
|
db3.person.drop()
|
||||||
db3.commit()
|
db3.commit()
|
||||||
except ImportError:
|
except ImportError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
mpfc = "Monty Python's Flying Circus"
|
mpfc = "Monty Python's Flying Circus"
|
||||||
dbdict4 = {"uri": 'sqlite:memory:',
|
dbdict4 = {"uri": DEFAULT_URI,
|
||||||
"items":{"staff":{"items": {"name":
|
"items":{"staff":{"items": {"name":
|
||||||
{"default":"Michael"},
|
{"default":"Michael"},
|
||||||
"food":
|
"food":
|
||||||
@@ -677,35 +689,39 @@ class TestDALDictImportExport(unittest.TestCase):
|
|||||||
assert db4(db4.show).select().first().id == 1
|
assert db4(db4.show).select().first().id == 1
|
||||||
assert db4(db4.show).select().first().name == mpfc
|
assert db4(db4.show).select().first().name == mpfc
|
||||||
|
|
||||||
dbdict5 = {"uri": 'sqlite:memory:'}
|
db4.staff.drop()
|
||||||
|
db4.show.drop()
|
||||||
|
db4.commit()
|
||||||
|
|
||||||
|
dbdict5 = {"uri": DEFAULT_URI}
|
||||||
db5 = DAL(dbdict5)
|
db5 = DAL(dbdict5)
|
||||||
assert db5.tables in ([], None)
|
assert db5.tables in ([], None)
|
||||||
assert not (str(db5) in ("", None))
|
assert not (str(db5) in ("", None))
|
||||||
|
|
||||||
dbdict6 = {"uri": 'sqlite:memory:',
|
dbdict6 = {"uri": DEFAULT_URI,
|
||||||
"items":{"staff":{},
|
"items":{"staff":{},
|
||||||
"show":{"items": {"name": {},
|
"show":{"items": {"name": {},
|
||||||
"rating":
|
"rating":
|
||||||
{"type":"double"}}}}}
|
{"type":"double"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
db6 = DAL(dbdict6)
|
db6 = DAL(dbdict6)
|
||||||
|
|
||||||
assert len(db6["staff"].fields) == 1
|
assert len(db6["staff"].fields) == 1
|
||||||
assert "name" in db6["show"].fields
|
assert "name" in db6["show"].fields
|
||||||
|
|
||||||
assert db6.staff.insert() is not None
|
assert db6.staff.insert() is not None
|
||||||
assert db6(db6.staff).select().first().id == 1
|
assert db6(db6.staff).select().first().id == 1
|
||||||
|
|
||||||
|
|
||||||
db6.staff.drop()
|
db6.staff.drop()
|
||||||
db6.show.drop()
|
db6.show.drop()
|
||||||
db6.commit()
|
db6.commit()
|
||||||
db4.staff.drop()
|
|
||||||
db4.show.drop()
|
|
||||||
db4.commit()
|
|
||||||
db2.pet.drop()
|
|
||||||
db2.person.drop()
|
|
||||||
db2.commit()
|
|
||||||
db.pet.drop()
|
|
||||||
db.person.drop()
|
|
||||||
db.commit()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
Reference in New Issue
Block a user