Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tests/test_model.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_model.py')
-rw-r--r--tests/test_model.py147
1 files changed, 0 insertions, 147 deletions
diff --git a/tests/test_model.py b/tests/test_model.py
deleted file mode 100644
index 6d171c1..0000000
--- a/tests/test_model.py
+++ /dev/null
@@ -1,147 +0,0 @@
-import unittest
-from testutils import tmpData
-
-from olpc.datastore import DataStore
-from olpc.datastore import model, backingstore
-import datetime
-import os
-
-
-DEFAULT_STORE = '/tmp/test_ds'
-
-class Test(unittest.TestCase):
- def setUp(self): os.system('rm -rf %s' % DEFAULT_STORE)
- def tearDown(self): os.system('rm -rf %s' % DEFAULT_STORE)
-
- def test_dateproperty(self):
- n = datetime.datetime.now()
- # we have to kill the microseconds as
- # time.strptime which we must use in 2.4 doesn't parse it
- n = n.replace(microsecond=0)
- p = model.Property('ctime', n.isoformat(), 'date')
- assert p.key == "ctime"
- assert p.value == n.isoformat()
- p.value = p.value
- assert p.value == n.isoformat()
-
- def test_binaryproperty(self):
- ds = DataStore()
- ds.registerBackend(backingstore.FileBackingStore)
-
-
- ds.mount(DEFAULT_STORE)
- n = datetime.datetime.now()
-
- data = open('test.jpg', 'r').read()
- # binary data with \0's in it can cause dbus errors here
- fn = tmpData("with image\0\0 prop")
- # The key types are looked up in the model now
- uid = ds.create({'title' : "Document 1", 'thumbnail:binary' : data, 'ctime' : n.isoformat()}, fn)
-
- ds.complete_indexing()
-
- c = ds.get(uid)
- assert c.get_property('thumbnail') == data
- # I don't care about the microsecond issue now, the typelib
- # patch later can fix that
- assert c.get_property('ctime')[:19] == n.isoformat()[:19]
-
- ds.stop()
-
-
- def test_intproperty(self):
- p = model.Property('keep', 1, 'int')
- assert p.value == '1'
-
- p.value = 0
- assert p.value == '0'
-
- p.value = '1'
- assert p.value == '1'
-
- p.value = '0'
- assert p.value == '0'
-
-
- ds = DataStore()
- ds.registerBackend(backingstore.FileBackingStore)
-
- ds.mount(DEFAULT_STORE)
-
- uid = ds.create({'title' : "Document 1", 'keep' : 1},)
- ds.complete_indexing()
- c = ds.get(uid)
- assert c.get_property('keep') == 1
-
- ds.update(uid, {'title' : "Document 1", 'keep' : 0})
- ds.complete_indexing()
- c = ds.get(uid)
- assert c.get_property('keep') == 0
-
-
- ds.update(uid, {'title' : "Document 1", 'keep' : '1'})
- ds.complete_indexing()
- c = ds.get(uid)
- assert c.get_property('keep') == 1
-
- ds.update(uid, {'title' : "Document 1", 'keep' : '0'})
- ds.complete_indexing()
- c = ds.get(uid)
- assert c.get_property('keep') == 0
-
- ds.stop()
-
- def test_randomproperty(self):
- # specifying items not in the model, with and w/o type
- # qualifiers
- ds = DataStore()
- ds.registerBackend(backingstore.FileBackingStore)
-
- ds.mount(DEFAULT_STORE)
-
- uid = ds.create({'title' : 'Random Extras', 'foobar' : 'baz',
- 'incept:date' : datetime.datetime.now().isoformat()})
-
- ds.complete_indexing()
-
- ds.update(uid, {'title' : 'Random Extras the sequel',
- 'foobar' : 'whodofoodo',
- 'incept:date' : datetime.datetime.now().isoformat()})
-
- ds.complete_indexing()
-
- # ignored w/o prefix
- assert ds.find('whodofoodo')[1] == 0
- # found with it
- assert ds.find('foobar:whodofoodo')[1] == 1
- c = ds.get_properties(uid)
- assert 'foobar' in c
- assert 'title' in c
- # maps back w/o the type
- assert 'incept' in c
-
- ds.update(uid, {'title' : 'Random Extras the sequel',
- 'foobar' : '',
- 'incept:date' : datetime.datetime.now().isoformat()})
-
- ds.complete_indexing()
- assert ds.find('whodofoodo')[1] == 0
- # found with it
- assert ds.find('foobar:whodofoodo')[1] == 0
- c = ds.get_properties(uid)
- assert 'title' in c
- # maps back w/o the type
- assert 'incept' in c
- assert c['foobar'] == ''
-
-
- ds.stop()
-
-def test_suite():
- suite = unittest.TestSuite()
- suite.addTest(unittest.makeSuite(Test))
- return suite
-
-if __name__ == "__main__":
- unittest.main()
-