[Greater-commits] r291 - trunk/GREAT-ER-DB/impl/postgresql/test

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Tue Jun 28 12:49:06 CEST 2011


Author: bricks
Date: 2011-06-28 12:49:06 +0200 (Tue, 28 Jun 2011)
New Revision: 291

Modified:
   trunk/GREAT-ER-DB/impl/postgresql/test/test_pg_q_temp_sess.py
Log:
Update temporary session unit tests and improve them


Modified: trunk/GREAT-ER-DB/impl/postgresql/test/test_pg_q_temp_sess.py
===================================================================
--- trunk/GREAT-ER-DB/impl/postgresql/test/test_pg_q_temp_sess.py	2011-06-28 10:44:51 UTC (rev 290)
+++ trunk/GREAT-ER-DB/impl/postgresql/test/test_pg_q_temp_sess.py	2011-06-28 10:49:06 UTC (rev 291)
@@ -50,51 +50,79 @@
         # if you do individual tests, you have to adjust the sess_id's, because there
         # is only 1 sess in the db (inserted by the insert.sql). the id da_create_temp_sess()
         # returns will be 102 and not 103.
-        self.res = da_create_temp_sess(101,'Y')
+        res = da_get_sess(101, 'N')
+        self.assertEquals(len(res), 1, "Session 101 not found")
+        res = da_get_sess(-1, '%');
+        self.assertEquals(len(res), 1, "Only one session should be available")
+        res = da_get_sess(-1, "N");
+        self.assertEquals(len(res), 1, "Only one permanent session should be available")
+        res = da_get_sess(-1, "Y");
+        self.assertEquals(len(res), 0, "No temp session should be available")
+        res = da_create_temp_sess(101, 'Y')
         da_db_commit()
-        self.assertNotEquals(self.res,0)
+        self.assertNotEquals(res, 0, "Could not create temp session")
+        res = da_get_sess(-1, '%');
+        self.assertEquals(len(res), 2, "Two sessions should be available")
+        res = da_get_sess(-1, "N");
+        self.assertEquals(len(res), 1, "Only one permanent session should be available")
+        res = da_get_sess(-1, "Y");
+        self.assertEquals(len(res), 1, "Onyl one temp session should be available")
 
     def test_1_make_temp_sess_permanent(self):
-        self.res = da_get_sess(101,'N')
-        self.assertNotEquals(len(self.res),0)
-        self.res = da_get_sess(103,'Y')
-        self.assertNotEquals(len(self.res),0)
-        self.res = da_make_temp_sess_permanent(103)
+        res = da_get_sess(101, 'N')
+        self.assertEquals(len(res), 1, "Session 101 not found")
+        res = da_get_sess(103, 'Y')
+        self.assertEquals(len(res), 0)
+        res = da_create_temp_sess(101, 'Y')
+        self.assertNotEquals(res, 0, "Could not create temp session")
+        temp_sess_id = res
+        res = da_make_temp_sess_permanent(temp_sess_id)
         da_db_commit()
-        self.res = da_get_sess(101,'N')
-        self.assertEquals(len(self.res),0)
-        self.res = da_get_sess(103,'Y')
-        self.assertEquals(len(self.res),0)
+        res = da_get_sess(temp_sess_id, 'N')
+        self.assertEquals(len(res), 1, "Could not find new permanent session")
+        res = da_get_sess(101, 'N')
+        self.assertEquals(len(res), 0, "Source session isn't deleted")
+        res = da_get_sess(103, 'Y')
+        self.assertEquals(len(res), 0, "No temp session should be avaliable")
+        res = da_get_sess(-1, '%');
+        self.assertEquals(len(res), 1, "Only one session should be available")
 
     def test_2_get_temp_sess(self):
-        self.res = da_get_sess(101,'Y')
-        self.assertEquals(len(self.res),0)
-        self.res = da_get_sess(101,'N')
-        self.assertEquals(len(self.res),0)
-        self.res = da_get_sess(103,'N')
-        self.assertNotEquals(len(self.res),0)
-        self.res = da_get_sess(103,'Y')
-        self.assertEquals(len(self.res),0)
+        res = da_get_sess(-1, "Y");
+        self.assertEquals(len(res), 0, "No temp session should be available")
+        res = da_create_temp_sess(101, 'Y')
+        da_db_commit()
+        self.assertNotEquals(res, 0, "Could not create temp session")
+        res = da_get_sess(101, 'Y')
+        self.assertEquals(len(res), 0, "101 should not be a temp session")
+        res = da_get_sess(101, 'N')
+        self.assertEquals(len(res), 1, "101 should be a perm session")
+        res = da_get_sess(102,'N')
+        self.assertEquals(len(res), 0, "102 should not be a perm session")
+        res = da_get_sess(102,'Y')
+        self.assertEquals(len(res), 1, "102 shoul be a temp session")
 
     def test_3_cleanup_temp_sess(self):
-        self.res = da_create_temp_sess(103,'Y')
-        self.res = da_get_sess(104,'Y')
-        self.assertNotEquals(self.res,0)
-        # there is no chance to test the cleanup function, 
-        # because the condition for deleting is that
-        # the sess. has to be older than 7 days (current_timestamp - mod_date > 7).
-        #
-        # update one temp. session's mod_date -> it will be cleaned up.
-        # possibility: sql-script
-        # right now, the sess 104 won't be cleaned up, because its mod_date
-        # is exactly current_timestamp.
-        self.res = da_cleanup_temp_sess()
+        res = da_create_temp_sess(101,'Y')
         da_db_commit()
-        self.res = da_get_sess(104,'Y')
-        self.assertEquals(len(self.res),0)  
+        res = da_get_sess(102,'Y')
+        self.assertNotEquals(res, 0)
+        affected = self.server.execute_sql("static_db", "admin", "UPDATE SESS_TAB SET"\
+                                           " MOD_DATE = (CURRENT_TIMESTAMP - interval "\
+                                           "'8 days') WHERE SESS_ID = '102'")
+        self.assertEquals(affected, 1, "Could not set mod_date of temp session")
+        res = da_cleanup_temp_sess()
+        da_db_commit()
+        res = da_get_sess(102, 'Y')
+        self.assertEquals(len(res), 0)
+        res = da_get_sess(102, 'N')
+        self.assertEquals(len(res), 0)
+        res = da_get_sess(-1, "%")
+        self.assertEquals(len(res), 1, "Only one session should be available")
 
     def tearDown(self):
         da_db_disconnect()
+        postgressupport.shutdown_test_server()
 
 if __name__ == "__main__":
     support.run_tests()



More information about the Greater-commits mailing list