# -*- coding: utf-8 -*- import unittest from datetime import datetime, timedelta from trac.util.datefmt import utc, to_timestamp from trac.test import EnvironmentStub, Mock from trac.search.api import * from tracrendezvous.event.model import Event, EventModelProvider from tracrendezvous.location.model import ItemLocation, LocationModelProvider class EventTestCase(unittest.TestCase): def setUp(self): self.env = EnvironmentStub(default_data=True, enable=['trac.*', 'tracrendezvous.*']) l = EventModelProvider(self.env).environment_created() l2 = LocationModelProvider(self.env).environment_created() loc1 = ItemLocation(self.env, 0, u"CTDO, Langer August", "N", 51, 31, 39.4, "E", 7, 27, 53.8, 51.527611, 7.464922) loc1.commit() self.created = datetime.now(utc) self.created = self.created.replace(microsecond=0) self.time_begin = datetime(2009, 3, 1, 17, 30, tzinfo=utc) self.time_end = datetime(2009, 3, 1, 22, 30, tzinfo=utc) loc1 = Event(self.env, 0, "name", self.created, self.created, self.time_begin, self.time_end, 1, initial_e_id=0, tags="a b c", attendees="a b c", is_periodic=True, wikipage="foobar") loc1.commit() def test_1_commit(self): self.env.get_db_cnx().cursor().execute("select name from events;").fetchall() def test_2_fetch_one(self): event = Event.fetch_one(self.env, 1) self.assertEqual(1, event.e_id) self.assertEqual(u"name", event.name) self.assertEqual(self.created, event.time_created) self.assertEqual(self.created, event.time_modified) self.assertEqual(self.time_begin, event.time_begin) self.assertEqual(self.time_begin, event.time_begin) self.assertEqual(self.time_end, event.time_end) self.assertEqual(1, event.location_id) self.assertEqual(0, event.initial_e_id) self.assertEqual("a b c", event.tags) self.assertEqual("a b c", event.attendees) self.assertEqual(True, event.is_periodic) self.assertEqual("foobar", event.wikipage) def test_3_exists(self): self.assertEqual(True, Event.exists(self.env, 1, self.time_begin, self.time_end)) self.assertEqual(False, Event.exists(self.env, 1, datetime(2009,4,1,17,20,tzinfo=utc), datetime(2009,3,1,17,20,tzinfo=utc))) self.assertEqual(False, Event.exists(self.env, 1, datetime(2009,3,1,17,20,tzinfo=utc), datetime(2009,4,1,17,20,tzinfo=utc))) def suite(): suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(EventTestCase, 'test')) return suite if __name__ == '__main__': unittest.main(defaultTest='suite')