Mercurial > hg > Feedworm
view tests/couchdb/ListDateTimeFieldTests.py @ 198:460a3062c5e6
create the database if it doesn't exist and drop it after test
author | dirk |
---|---|
date | Fri, 27 Jan 2012 02:35:46 +0100 |
parents | f0afcd1c5656 |
children | bb3c851b18b1 |
line wrap: on
line source
from backend.couchdb.ListDateTimeField import ListDateTimeField from couchdb import Server from couchdb.http import ResourceNotFound from couchdb.mapping import Document, TextField from datetime import datetime import unittest class ListDateTimeFieldTests(unittest.TestCase): def testToJsonValid(self): value = datetime(2011, 9, 7, 15, 21, 0) result = ListDateTimeField()._to_json(value) self.assertEqual([2011, 9, 7, 15, 21, 0], result) def testToJsonInvalid(self): value = "this is invalid input" result = ListDateTimeField()._to_json(value) self.assertEqual(value, result) def testToPythonValid(self): value = [2011, 9, 7, 15, 21, 0] result = ListDateTimeField()._to_python(value) expected = datetime(2011, 9, 7, 15, 21, 0) self.assertEqual(expected, result) def testToPythonInvalid(self): value = "this is invalid input" result = ListDateTimeField()._to_python(value) self.assertEqual(value, result) def testRoundTrip(self): class Dummy(Document): title = TextField() date = ListDateTimeField() server = Server() database = self._createDatabase(server) dummy = Dummy() dummy.title = "created from unit test" date = datetime.now().replace(microsecond=0) dummy.date = date dummy.store(database) self.assertNotEqual(None, dummy.id) dummy2 = Dummy.load(database, dummy.id) self.assertNotEqual(None, dummy2) self.assertFalse(dummy == dummy2) self.assertEqual(date, dummy2.date) del server[database.name] def _createDatabase(self, server): databaseName = "feedworm-unit-test" database = None try: database = server[databaseName] except (ResourceNotFound): database = server.create(databaseName) return database if __name__ == "__main__": #import sys;sys.argv = ['', 'Test.testName'] unittest.main()