def test(host, pguser): pg_conn_info = "dbname=epanet_test_db host=" + host + " user="******"dropdb --if-exists -h " + host + " -U "+pguser+" epanet_test_db") os.system("createdb -h " + host + " -U "+pguser+" epanet_test_db") os.system("psql -h " + host + " -U "+pguser+" epanet_test_db -f "+test_data_dir+"/epanet_test_db.sql") versioning.historize(pg_conn_info,"epanet") # try the update wc = tmp_dir+"/bug_in_branch_after_commit_wc.sqlite" if os.path.isfile(wc): os.remove(wc) spversioning = versioning.spatialite(wc, pg_conn_info) spversioning.checkout(['epanet_trunk_rev_head.junctions', 'epanet_trunk_rev_head.pipes']) scur = versioning.Db( dbapi2.connect( wc ) ) scur.execute("SELECT * FROM pipes") scur.execute("UPDATE pipes_view SET length = 1 WHERE OGC_FID = 1") scur.commit() spversioning.commit('test') versioning.add_branch(pg_conn_info,"epanet","mybranch","add 'branch")
def test(host, pguser): pg_conn_info = "dbname=epanet_test_db host=" + host + " user="******"dropdb --if-exists -h " + host + " -U " + pguser + " epanet_test_db") os.system("createdb -h " + host + " -U " + pguser + " epanet_test_db") os.system("psql -h " + host + " -U " + pguser + " epanet_test_db -c 'CREATE EXTENSION postgis'") os.system("psql -h " + host + " -U " + pguser + " epanet_test_db -f " + test_data_dir + "/epanet_test_db_unversioned.sql") versioning.historize(pg_conn_info, "epanet") # try the update wc = tmp_dir + "/bug_in_branch_after_commit_wc.sqlite" if os.path.isfile(wc): os.remove(wc) spversioning = versioning.spatialite(wc, pg_conn_info) spversioning.checkout( ['epanet_trunk_rev_head.junctions', 'epanet_trunk_rev_head.pipes']) scur = versioning.Db(dbapi2.connect(wc)) scur.execute("SELECT * FROM pipes") scur.execute("UPDATE pipes_view SET length = 1 WHERE OGC_FID = 1") scur.commit() spversioning.commit('test') versioning.add_branch(pg_conn_info, "epanet", "mybranch", "add 'branch")
def test(host, pguser): pg_conn_info = "dbname=epanet_test_db host=" + host + " user="******"dropdb --if-exists -h " + host + " -U " + pguser + " epanet_test_db") os.system("createdb -h " + host + " -U " + pguser + " epanet_test_db") os.system("psql -h " + host + " -U " + pguser + " epanet_test_db -c 'CREATE EXTENSION postgis'") os.system("psql -h " + host + " -U " + pguser + " epanet_test_db -f " + test_data_dir + "/epanet_test_db.sql") versioning.historize( "dbname=epanet_test_db host={} user={}".format(host, pguser), "epanet") # branch versioning.add_branch(pg_conn_info, "epanet", "mybranch", "add 'branch") # chechout from branch : epanet_brwcs_rev_head #tables = ['epanet_trunk_rev_head.junctions','epanet_trunk_rev_head.pipes'] tables = [ 'epanet_mybranch_rev_head.junctions', 'epanet_mybranch_rev_head.pipes' ] pgversioning = versioning.pgServer(pg_conn_info, 'epanet_brwcs_rev_head') pgversioning.checkout(tables) pcur = versioning.Db(psycopg2.connect(pg_conn_info)) # insert into epanet_brwcs_rev_head pcur.execute( "INSERT INTO epanet_brwcs_rev_head.pipes_view(id, start_node, end_node, geom) VALUES ('2','1','2',ST_GeometryFromText('LINESTRING(1 1,0 1)',2154))" ) pcur.execute( "INSERT INTO epanet_brwcs_rev_head.pipes_view(id, start_node, end_node, geom) VALUES ('3','1','2',ST_GeometryFromText('LINESTRING(1 -1,0 1)',2154))" ) pcur.execute("DELETE FROM epanet_brwcs_rev_head.pipes_view WHERE id=3") pcur.commit() pgversioning.commit("commit", "postgres") versioning.merge(pg_conn_info, "epanet", "mybranch") pcur.execute("SELECT max(rev) FROM epanet.revisions") assert (pcur.fetchone()[0] == 4) pcur.execute( "SELECT rev, commit_msg, branch FROM epanet.revisions WHERE rev=4") assert (pcur.fetchall() == [(4, 'Merge branch mybranch into trunk', 'trunk')]) pcur.execute( "SELECT versioning_id, trunk_rev_begin, trunk_rev_end, mybranch_rev_begin,mybranch_rev_end FROM epanet.pipes" ) assert (pcur.fetchall() == [(1, 1, None, 2, None), (2, 3, None, 3, None)]) pcur.close()
def test(host, pguser): pg_conn_info = "dbname=epanet_test_db host=" + host + " user="******"dropdb --if-exists -h " + host + " -U "+pguser+" epanet_test_db") os.system("createdb -h " + host + " -U "+pguser+" epanet_test_db") os.system("psql -h " + host + " -U "+pguser + " epanet_test_db -c 'CREATE EXTENSION postgis'") os.system("psql -h " + host + " -U "+pguser + " epanet_test_db -f "+test_data_dir+"/epanet_test_db.sql") versioning.historize("dbname=epanet_test_db host={} user={}".format(host,pguser), "epanet") # branch versioning.add_branch(pg_conn_info, "epanet", "mybranch", "add 'branch") # chechout from branch : epanet_brwcs_rev_head #tables = ['epanet_trunk_rev_head.junctions','epanet_trunk_rev_head.pipes'] tables = ['epanet_mybranch_rev_head.junctions', 'epanet_mybranch_rev_head.pipes'] pgversioning = versioning.pgServer(pg_conn_info, 'epanet_brwcs_rev_head') pgversioning.checkout(tables) pcur = versioning.Db(psycopg2.connect(pg_conn_info)) # insert into epanet_brwcs_rev_head pcur.execute("INSERT INTO epanet_brwcs_rev_head.pipes_view(id, start_node, end_node, geom) VALUES ('2','1','2',ST_GeometryFromText('LINESTRING(1 1,0 1)',2154))") pcur.execute("INSERT INTO epanet_brwcs_rev_head.pipes_view(id, start_node, end_node, geom) VALUES ('3','1','2',ST_GeometryFromText('LINESTRING(1 -1,0 1)',2154))") pcur.execute("DELETE FROM epanet_brwcs_rev_head.pipes_view WHERE id=3") pcur.commit() pgversioning.commit("commit", "postgres") versioning.merge(pg_conn_info, "epanet", "mybranch") pcur.execute("SELECT max(rev) FROM epanet.revisions") assert(pcur.fetchone()[0] == 4) pcur.execute( "SELECT rev, commit_msg, branch FROM epanet.revisions WHERE rev=4") assert(pcur.fetchall() == [ (4, 'Merge branch mybranch into trunk', 'trunk')]) pcur.execute( "SELECT versioning_id, trunk_rev_begin, trunk_rev_end, mybranch_rev_begin,mybranch_rev_end FROM epanet.pipes") assert(pcur.fetchall() == [(1, 1, None, 2, None), (2, 3, None, 3, None)]) pcur.close()
def test(host, pguser): pg_conn_info = "dbname=epanet_test_db host=" + host + " user="******"dropdb --if-exists -h " + host + " -U "+pguser+" epanet_test_db") os.system("createdb -h " + host + " -U "+pguser+" epanet_test_db") os.system("psql -h " + host + " -U "+pguser+" epanet_test_db -c 'CREATE EXTENSION postgis'") pcur = versioning.Db(psycopg2.connect(pg_conn_info)) pcur.execute("CREATE SCHEMA epanet") pcur.execute(""" CREATE TABLE epanet.junctions ( hid serial PRIMARY KEY, id varchar, elevation float, base_demand_flow float, demand_pattern_id varchar, geometry geometry('POINT',2154), geometry_schematic geometry('POLYGON',2154) )""") pcur.execute(""" INSERT INTO epanet.junctions (id, elevation, geometry, geometry_schematic) VALUES ('0',0,ST_GeometryFromText('POINT(0 0)',2154), ST_GeometryFromText('POLYGON((-1 -1,1 -1,1 1,-1 1,-1 -1))',2154))""") pcur.execute(""" INSERT INTO epanet.junctions (id, elevation, geometry, geometry_schematic) VALUES ('1',1,ST_GeometryFromText('POINT(0 1)',2154), ST_GeometryFromText('POLYGON((0 0,2 0,2 2,0 2,0 0))',2154))""") pcur.execute(""" CREATE TABLE epanet.pipes ( hid serial PRIMARY KEY, id varchar, start_node varchar, end_node varchar, length float, diameter float, roughness float, minor_loss_coefficient float, status varchar, geometry geometry('LINESTRING',2154) )""") pcur.execute(""" INSERT INTO epanet.pipes (id, start_node, end_node, length, diameter, geometry) VALUES ('0','0','1',1,2,ST_GeometryFromText('LINESTRING(1 0,0 1)',2154))""") pcur.commit() pcur.close() versioning.historize( pg_conn_info, 'epanet' ) failed = False try: versioning.add_branch( pg_conn_info, 'epanet', 'trunk' ) except: failed = True assert( failed ) failed = False try: versioning.add_branch( pg_conn_info, 'epanet', 'mybranch', 'message', 'toto' ) except: failed = True assert( failed ) versioning.add_branch( pg_conn_info, 'epanet', 'mybranch', 'test msg' ) pcur = versioning.Db(psycopg2.connect(pg_conn_info)) pcur.execute("SELECT * FROM epanet_mybranch_rev_head.junctions") assert( len(pcur.fetchall()) == 2 ) pcur.execute("SELECT * FROM epanet_mybranch_rev_head.pipes") assert( len(pcur.fetchall()) == 1 ) ##versioning.add_revision_view( pg_conn_info, 'epanet', 'mybranch', 2) ##pcur.execute("SELECT * FROM epanet_mybranch_rev_2.junctions") ##assert( len(pcur.fetchall()) == 2 ) ##pcur.execute("SELECT * FROM epanet_mybranch_rev_2.pipes") ##assert( len(pcur.fetchall()) == 1 ) select_and_where_str = versioning.rev_view_str( pg_conn_info, 'epanet', 'junctions','mybranch', 2) #print(select_and_where_str[0] + " WHERE " + select_and_where_str[1]) pcur.execute(select_and_where_str[0] + " WHERE " + select_and_where_str[1]) assert( len(pcur.fetchall()) == 2 ) select_and_where_str = versioning.rev_view_str( pg_conn_info, 'epanet', 'pipes','mybranch', 2) #print(select_and_where_str[0] + " WHERE " + select_and_where_str[1]) pcur.execute(select_and_where_str[0] + " WHERE " + select_and_where_str[1]) assert( len(pcur.fetchall()) == 1 ) ##pcur.execute("SELECT ST_AsText(geometry), ST_AsText(geometry_schematic) FROM epanet_mybranch_rev_2.junctions") pcur.execute("SELECT ST_AsText(geometry), ST_AsText(geometry_schematic) FROM epanet.junctions") res = pcur.fetchall() assert( res[0][0] == 'POINT(0 0)' ) assert( res[1][1] == 'POLYGON((0 0,2 0,2 2,0 2,0 0))' ) wc = os.path.join(tmp_dir, 'wc_multiple_geometry_test.sqlite') spversioning = versioning.spatialite(wc, pg_conn_info) if os.path.isfile(wc): os.remove(wc) spversioning.checkout( ['epanet_trunk_rev_head.pipes','epanet_trunk_rev_head.junctions'] ) scur = versioning.Db( dbapi2.connect(wc) ) scur.execute("UPDATE junctions_view SET GEOMETRY = GeometryFromText('POINT(3 3)',2154)") scur.commit() scur.close() spversioning.commit( 'a commit msg' ) pcur.execute("SELECT ST_AsText(geometry), ST_AsText(geometry_schematic) FROM epanet_trunk_rev_head.junctions") res = pcur.fetchall() for r in res: print(r) assert( res[0][0] == 'POINT(3 3)' ) assert( res[1][1] == 'POLYGON((0 0,2 0,2 2,0 2,0 0))' ) pcur.close()
def test(host, pguser): pg_conn_info = "dbname=epanet_test_db host=" + host + " user="******"dropdb --if-exists -h " + host + " -U "+pguser+" epanet_test_db") os.system("createdb -h " + host + " -U "+pguser+" epanet_test_db") os.system("psql -h " + host + " -U "+pguser+" epanet_test_db -c 'CREATE EXTENSION postgis'") pcur = versioning.Db(psycopg2.connect(pg_conn_info)) pcur.execute("CREATE SCHEMA epanet") pcur.execute(""" CREATE TABLE epanet.junctions ( hid serial PRIMARY KEY, id varchar, elevation float, base_demand_flow float, demand_pattern_id varchar, geom geometry('POINT',2154) )""") pcur.execute(""" INSERT INTO epanet.junctions (id, elevation, geom) VALUES ('0',0,ST_GeometryFromText('POINT(1 0)',2154))""") pcur.execute(""" INSERT INTO epanet.junctions (id, elevation, geom) VALUES ('1',1,ST_GeometryFromText('POINT(0 1)',2154))""") pcur.execute(""" CREATE TABLE epanet.pipes ( hid serial PRIMARY KEY, id varchar, start_node varchar, end_node varchar, length float, diameter float, roughness float, minor_loss_coefficient float, status varchar, geom geometry('LINESTRING',2154) )""") pcur.execute(""" INSERT INTO epanet.pipes (id, start_node, end_node, length, diameter, geom) VALUES ('0','0','1',1,2,ST_GeometryFromText('LINESTRING(1 0,0 1)',2154))""") pcur.commit() pcur.close() versioning.historize( pg_conn_info, 'epanet' ) failed = False try: versioning.add_branch( pg_conn_info, 'epanet', 'trunk' ) except: failed = True assert( failed ) failed = False try: versioning.add_branch( pg_conn_info, 'epanet', 'mybranch', 'message', 'toto' ) except: failed = True assert( failed ) versioning.add_branch( pg_conn_info, 'epanet', 'mybranch', 'test msg' ) pcur = versioning.Db(psycopg2.connect(pg_conn_info)) pcur.execute("SELECT * FROM epanet_mybranch_rev_head.junctions") assert( len(pcur.fetchall()) == 2 ) pcur.execute("SELECT * FROM epanet_mybranch_rev_head.pipes") assert( len(pcur.fetchall()) == 1 ) ##versioning.add_revision_view( pg_conn_info, 'epanet', 'mybranch', 2) ##pcur.execute("SELECT * FROM epanet_mybranch_rev_2.junctions") ##assert( len(pcur.fetchall()) == 2 ) ##pcur.execute("SELECT * FROM epanet_mybranch_rev_2.pipes") ##assert( len(pcur.fetchall()) == 1 ) select_str, where_str = versioning.rev_view_str( pg_conn_info, 'epanet', 'junctions','mybranch', 2) pcur.execute(select_str + " WHERE " + where_str) assert( len(pcur.fetchall()) == 2 ) select_str, where_str = versioning.rev_view_str( pg_conn_info, 'epanet', 'pipes','mybranch', 2) pcur.execute(select_str + " WHERE " + where_str) assert( len(pcur.fetchall()) == 1 ) pcur.close()
def test(host, pguser): pg_conn_info = "dbname=epanet_test_db host=" + host + " user="******"dropdb --if-exists -h " + host + " -U "+pguser+" epanet_test_db") os.system("createdb -h " + host + " -U "+pguser+" epanet_test_db") os.system("psql -h " + host + " -U "+pguser+" epanet_test_db -c 'CREATE EXTENSION postgis'") pcur = versioning.Db(psycopg2.connect(pg_conn_info)) pcur.execute("CREATE SCHEMA epanet") pcur.execute(""" CREATE TABLE epanet.junctions ( hid serial PRIMARY KEY, id varchar, elevation float, base_demand_flow float, demand_pattern_id varchar, geometry geometry('POINT',2154), geometry_schematic geometry('POLYGON',2154) )""") pcur.execute(""" INSERT INTO epanet.junctions (id, elevation, geometry, geometry_schematic) VALUES ('0',0,ST_GeometryFromText('POINT(0 0)',2154), ST_GeometryFromText('POLYGON((-1 -1,1 -1,1 1,-1 1,-1 -1))',2154))""") pcur.execute(""" INSERT INTO epanet.junctions (id, elevation, geometry, geometry_schematic) VALUES ('1',1,ST_GeometryFromText('POINT(0 1)',2154), ST_GeometryFromText('POLYGON((0 0,2 0,2 2,0 2,0 0))',2154))""") pcur.execute(""" CREATE TABLE epanet.pipes ( hid serial PRIMARY KEY, id varchar, start_node varchar, end_node varchar, length float, diameter float, roughness float, minor_loss_coefficient float, status varchar, geometry geometry('LINESTRING',2154) )""") pcur.execute(""" INSERT INTO epanet.pipes (id, start_node, end_node, length, diameter, geometry) VALUES ('0','0','1',1,2,ST_GeometryFromText('LINESTRING(1 0,0 1)',2154))""") pcur.commit() pcur.close() versioning.historize( pg_conn_info, 'epanet' ) failed = False try: versioning.add_branch( pg_conn_info, 'epanet', 'trunk' ) except: failed = True assert( failed ) failed = False try: versioning.add_branch( pg_conn_info, 'epanet', 'mybranch', 'message', 'toto' ) except: failed = True assert( failed ) versioning.add_branch( pg_conn_info, 'epanet', 'mybranch', 'test msg' ) pcur = versioning.Db(psycopg2.connect(pg_conn_info)) pcur.execute("SELECT * FROM epanet_mybranch_rev_head.junctions") assert( len(pcur.fetchall()) == 2 ) pcur.execute("SELECT * FROM epanet_mybranch_rev_head.pipes") assert( len(pcur.fetchall()) == 1 ) ##versioning.add_revision_view( pg_conn_info, 'epanet', 'mybranch', 2) ##pcur.execute("SELECT * FROM epanet_mybranch_rev_2.junctions") ##assert( len(pcur.fetchall()) == 2 ) ##pcur.execute("SELECT * FROM epanet_mybranch_rev_2.pipes") ##assert( len(pcur.fetchall()) == 1 ) select_and_where_str = versioning.rev_view_str( pg_conn_info, 'epanet', 'junctions','mybranch', 2) #print(select_and_where_str[0] + " WHERE " + select_and_where_str[1]) pcur.execute(select_and_where_str[0] + " WHERE " + select_and_where_str[1]) assert( len(pcur.fetchall()) == 2 ) select_and_where_str = versioning.rev_view_str( pg_conn_info, 'epanet', 'pipes','mybranch', 2) #print(select_and_where_str[0] + " WHERE " + select_and_where_str[1]) pcur.execute(select_and_where_str[0] + " WHERE " + select_and_where_str[1]) assert( len(pcur.fetchall()) == 1 ) ##pcur.execute("SELECT ST_AsText(geometry), ST_AsText(geometry_schematic) FROM epanet_mybranch_rev_2.junctions") pcur.execute("SELECT ST_AsText(geometry), ST_AsText(geometry_schematic) FROM epanet.junctions") res = pcur.fetchall() assert( res[0][0] == 'POINT(0 0)' ) assert( res[1][1] == 'POLYGON((0 0,2 0,2 2,0 2,0 0))' ) wc = os.path.join(tmp_dir, 'wc_multiple_geometry_test.sqlite') spversioning = versioning.spatialite(wc, pg_conn_info) if os.path.isfile(wc): os.remove(wc) spversioning.checkout( ['epanet_trunk_rev_head.pipes','epanet_trunk_rev_head.junctions'] ) scur = versioning.Db( dbapi2.connect(wc) ) scur.execute("UPDATE junctions_view SET GEOMETRY = GeometryFromText('POINT(3 3)',2154)") scur.commit() scur.close() spversioning.commit( 'a commit msg' ) pcur.execute("SELECT ST_AsText(geometry), ST_AsText(geometry_schematic) FROM epanet_trunk_rev_head.junctions") res = pcur.fetchall() for r in res: print(r) assert( res[0][0] == 'POINT(3 3)' ) assert( res[1][1] == 'POLYGON((0 0,2 0,2 2,0 2,0 0))' ) pcur.close()
def test(host, pguser): pg_conn_info = "dbname=epanet_test_db host=" + host + " user="******"dropdb --if-exists -h " + host + " -U " + pguser + " epanet_test_db") os.system("createdb -h " + host + " -U " + pguser + " epanet_test_db") os.system("psql -h " + host + " -U " + pguser + " epanet_test_db -c 'CREATE EXTENSION postgis'") pcur = versioning.Db(psycopg2.connect(pg_conn_info)) pcur.execute("CREATE SCHEMA epanet") pcur.execute(""" CREATE TABLE epanet.junctions ( hid serial PRIMARY KEY, id varchar, elevation float, base_demand_flow float, demand_pattern_id varchar, geom geometry('POINT',2154) )""") pcur.execute(""" INSERT INTO epanet.junctions (id, elevation, geom) VALUES ('0',0,ST_GeometryFromText('POINT(1 0)',2154))""") pcur.execute(""" INSERT INTO epanet.junctions (id, elevation, geom) VALUES ('1',1,ST_GeometryFromText('POINT(0 1)',2154))""") pcur.execute(""" CREATE TABLE epanet.pipes ( hid serial PRIMARY KEY, id varchar, start_node varchar, end_node varchar, length float, diameter float, roughness float, minor_loss_coefficient float, status varchar, geom geometry('LINESTRING',2154) )""") pcur.execute(""" INSERT INTO epanet.pipes (id, start_node, end_node, length, diameter, geom) VALUES ('0','0','1',1,2,ST_GeometryFromText('LINESTRING(1 0,0 1)',2154))""" ) pcur.commit() pcur.close() versioning.historize(pg_conn_info, 'epanet') failed = False try: versioning.add_branch(pg_conn_info, 'epanet', 'trunk') except: failed = True assert (failed) failed = False try: versioning.add_branch(pg_conn_info, 'epanet', 'mybranch', 'message', 'toto') except: failed = True assert (failed) versioning.add_branch(pg_conn_info, 'epanet', 'mybranch', 'test msg') pcur = versioning.Db(psycopg2.connect(pg_conn_info)) pcur.execute("SELECT * FROM epanet_mybranch_rev_head.junctions") assert (len(pcur.fetchall()) == 2) pcur.execute("SELECT * FROM epanet_mybranch_rev_head.pipes") assert (len(pcur.fetchall()) == 1) ##versioning.add_revision_view( pg_conn_info, 'epanet', 'mybranch', 2) ##pcur.execute("SELECT * FROM epanet_mybranch_rev_2.junctions") ##assert( len(pcur.fetchall()) == 2 ) ##pcur.execute("SELECT * FROM epanet_mybranch_rev_2.pipes") ##assert( len(pcur.fetchall()) == 1 ) select_str, where_str = versioning.rev_view_str(pg_conn_info, 'epanet', 'junctions', 'mybranch', 2) pcur.execute(select_str + " WHERE " + where_str) assert (len(pcur.fetchall()) == 2) select_str, where_str = versioning.rev_view_str(pg_conn_info, 'epanet', 'pipes', 'mybranch', 2) pcur.execute(select_str + " WHERE " + where_str) assert (len(pcur.fetchall()) == 1) pcur.close()