# -*- coding: utf-8 -*- import os.path import shutil import tempfile import unittest from trac.test import EnvironmentStub, Mock from trac.search.api import * from tracrendezvous.location.model import ItemLocation, LocationModelProvider class ItemLocationTestCase(unittest.TestCase): def setUp(self): #self.basedir = os.path.realpath(tempfile.mkdtemp()) self.env = EnvironmentStub(default_data=True, enable=['trac.*', 'tracrendezvous.location.*']) l = 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() loc2 = ItemLocation(self.env, 0, u"WILA, Langer August", "N", 51, 31, 39.4, "E", 7, 27, 53.8, 51.527611, 7.464922) loc2.commit() def test_1_commit(self): self.env.get_db_cnx().cursor().execute("select name from item_location;").fetchall() def test_2_fetch_one(self): loc1 = ItemLocation.fetch_one(self.env, 1) self.assertEqual(1, loc1.location_id) self.assertEqual(u"CTDO, Langer August", loc1.name) self.assertEqual(u"N", loc1.lat_side) self.assertEqual(51, loc1.lat_deg) self.assertEqual(31, loc1.lat_min) self.assertEqual(39.4, loc1.lat_sec) self.assertEqual("E", loc1.lon_side) self.assertEqual(7, loc1.lon_deg) self.assertEqual(27, loc1.lon_min) self.assertEqual(53.8, loc1.lon_sec) self.assertEqual(51.527611, loc1.lat) self.assertEqual(7.464922, loc1.lon) def test_3_search_one(self): loc2 = ItemLocation.search_one(self.env, u"WILA") self.assertEqual(2, loc2.location_id) self.assertEqual(u"WILA, Langer August", loc2.name) self.assertEqual(u"N", loc2.lat_side) self.assertEqual(51, loc2.lat_deg) self.assertEqual(31, loc2.lat_min) self.assertEqual(39.4, loc2.lat_sec) self.assertEqual("E", loc2.lon_side) self.assertEqual(7, loc2.lon_deg) self.assertEqual(27, loc2.lon_min) self.assertEqual(53.8, loc2.lon_sec) self.assertEqual(51.527611, loc2.lat) self.assertEqual(7.464922, loc2.lon) def test_4_fetch_all(self): locs = ItemLocation.fetch_all(self.env) self.assertEqual(1, locs[0].location_id) self.assertEqual(u"CTDO, Langer August", locs[0].name) self.assertEqual(u"N", locs[0].lat_side) self.assertEqual(51, locs[0].lat_deg) self.assertEqual(31, locs[0].lat_min) self.assertEqual(39.4, locs[0].lat_sec) self.assertEqual("E", locs[0].lon_side) self.assertEqual(7, locs[0].lon_deg) self.assertEqual(27, locs[0].lon_min) self.assertEqual(53.8, locs[0].lon_sec) self.assertEqual(51.527611, locs[0].lat) self.assertEqual(7.464922, locs[0].lon) self.assertEqual(2, locs[1].location_id) self.assertEqual(u"WILA, Langer August", locs[1].name) self.assertEqual(u"N", locs[1].lat_side) self.assertEqual(51, locs[1].lat_deg) self.assertEqual(31, locs[1].lat_min) self.assertEqual(39.4, locs[1].lat_sec) self.assertEqual("E", locs[1].lon_side) self.assertEqual(7, locs[1].lon_deg) self.assertEqual(27, locs[1].lon_min) self.assertEqual(53.8, locs[1].lon_sec) self.assertEqual(51.527611, locs[1].lat) self.assertEqual(7.464922, locs[1].lon) def test_5_exists(self): self.assertEqual(True, ItemLocation.exists(self.env, u"WILA, Langer August")) self.assertEqual(False, ItemLocation.exists(self.env, u"WILA")) def test_6_update(self): loc = ItemLocation.fetch_one(self.env, 1) loc.name = "foo" loc.lat_side = "Q" loc.lat_deg = 1 loc.lat_min = 1 loc.lat_sec = 1 loc.lon_side = "Q" loc.lon_deg = 1 loc.lon_min = 1 loc.lon_sec = 1 loc.update() self.assertEqual(loc.lat_side , "Q") self.assertEqual(loc.lat_deg , 1) self.assertEqual(loc.lat_min , 1) self.assertEqual(loc.lat_sec , 1) self.assertEqual(loc.lon_side , "Q") self.assertEqual(loc.lon_deg , 1) self.assertEqual(loc.lon_min , 1) self.assertEqual(loc.lon_sec , 1) def test_7_delete(self): ItemLocation.delete(self.env, 1) self.assertEqual(None, ItemLocation.fetch_one(self.env, 1)) def suite(): suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(ItemLocationTestCase, 'test')) return suite if __name__ == '__main__': unittest.main(defaultTest='suite')