ctdo-trac/TracRendezVous/tracrendezvous/location/tests/model.py

118 lines
4.6 KiB
Python
Raw Permalink Normal View History

2012-03-31 15:45:24 +00:00
# -*- 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')