def test_it_should_parse_sql_statements_with_html_inside(self): sql = u""" create table eggs; INSERT INTO widget_parameter_domain (widget_parameter_id, label, value) VALUES ((SELECT MAX(widget_parameter_id) FROM widget_parameter), "Carros", '<div class="box-zap-geral"> <div class="box-zap box-zap-autos"> <a class="logo" target="_blank" title="ZAP" href="http://www.zap.com.br/Parceiros/g1/RedirG1.aspx?CodParceriaLink=42&URL=http://www.zap.com.br">'); drop table spam; """ statements = MySQL._parse_sql_statements(sql) expected_sql_with_html = """INSERT INTO widget_parameter_domain (widget_parameter_id, label, value) VALUES ((SELECT MAX(widget_parameter_id) FROM widget_parameter), "Carros", '<div class="box-zap-geral"> <div class="box-zap box-zap-autos"> <a class="logo" target="_blank" title="ZAP" href="http://www.zap.com.br/Parceiros/g1/RedirG1.aspx?CodParceriaLink=42&URL=http://www.zap.com.br">')""" self.assertEqual(3, len(statements)) self.assertEqual('create table eggs', statements[0]) self.assertEqual(expected_sql_with_html, statements[1]) self.assertEqual('drop table spam', statements[2])
def test_it_should_parse_sql_statements(self): #TODO include other types of sql sql = "; ; create table eggs; drop table spam; ; ;\ CREATE PRoCeDUrE country_hos \n\ (IN con CHAR(20)) \n\ BEGIN \n\ SELECT Name, HeadOfState FROM Country \n\ WHERE Continent = con; \n\ END \n\ / \n\ CREATE DEFINER = 'admin'@'localhost' FUNCTION simple \n\ RETURN VARCHAR2 IS \n\ BEGIN \n\ RETURN 'Simple Function'; \n\ END \n\ \t/ \n\ drop table eggs; \n\ create TRIGGER \"FOLDER_TR\" \n\ BEFORE INSERT ON \"FOLDER\" \n\ FOR EACH ROW WHEN \n\ (\n\ new.\"FOLDER_ID\" IS NULL \n\ )\n\ BEGIN\n\ SELECT \"FOLDER_SQ\".nextval\n\ INTO :new.\"FOLDER_ID\"\n\ FROM dual;\n\ EnD;\n\ /\n\ " statements = MySQL._parse_sql_statements(sql) self.assertEqual(6, len(statements)) self.assertEqual('create table eggs', statements[0]) self.assertEqual('drop table spam', statements[1]) self.assertEqual( "CREATE PRoCeDUrE country_hos \n\ (IN con CHAR(20)) \n\ BEGIN \n\ SELECT Name, HeadOfState FROM Country \n\ WHERE Continent = con; \n\ END", statements[2]) self.assertEqual( "CREATE DEFINER = 'admin'@'localhost' FUNCTION simple \n\ RETURN VARCHAR2 IS \n\ BEGIN \n\ RETURN 'Simple Function'; \n\ END", statements[3]) self.assertEqual('drop table eggs', statements[4]) self.assertEqual( 'create TRIGGER \"FOLDER_TR\" \n\ BEFORE INSERT ON \"FOLDER\" \n\ FOR EACH ROW WHEN \n\ (\n\ new.\"FOLDER_ID\" IS NULL \n\ )\n\ BEGIN\n\ SELECT \"FOLDER_SQ\".nextval\n\ INTO :new.\"FOLDER_ID\"\n\ FROM dual;\n\ EnD;', statements[5])
def test_it_should_parse_sql_statements(self): #TODO include other types of sql sql = "; ; create table eggs; drop table spam; ; ;\ CREATE PRoCeDUrE country_hos \n\ (IN con CHAR(20)) \n\ BEGIN \n\ SELECT Name, HeadOfState FROM Country \n\ WHERE Continent = con; \n\ END \n\ / \n\ CREATE DEFINER = 'admin'@'localhost' FUNCTION simple \n\ RETURN VARCHAR2 IS \n\ BEGIN \n\ RETURN 'Simple Function'; \n\ END \n\ \t/ \n\ drop table eggs; \n\ create TRIGGER \"FOLDER_TR\" \n\ BEFORE INSERT ON \"FOLDER\" \n\ FOR EACH ROW WHEN \n\ (\n\ new.\"FOLDER_ID\" IS NULL \n\ )\n\ BEGIN\n\ SELECT \"FOLDER_SQ\".nextval\n\ INTO :new.\"FOLDER_ID\"\n\ FROM dual;\n\ EnD;\n\ /\n\ " statements = MySQL._parse_sql_statements(sql) self.assertEqual(6, len(statements)) self.assertEqual('create table eggs', statements[0]) self.assertEqual('drop table spam', statements[1]) self.assertEqual("CREATE PRoCeDUrE country_hos \n\ (IN con CHAR(20)) \n\ BEGIN \n\ SELECT Name, HeadOfState FROM Country \n\ WHERE Continent = con; \n\ END", statements[2]) self.assertEqual("CREATE DEFINER = 'admin'@'localhost' FUNCTION simple \n\ RETURN VARCHAR2 IS \n\ BEGIN \n\ RETURN 'Simple Function'; \n\ END", statements[3]) self.assertEqual('drop table eggs', statements[4]) self.assertEqual('create TRIGGER \"FOLDER_TR\" \n\ BEFORE INSERT ON \"FOLDER\" \n\ FOR EACH ROW WHEN \n\ (\n\ new.\"FOLDER_ID\" IS NULL \n\ )\n\ BEGIN\n\ SELECT \"FOLDER_SQ\".nextval\n\ INTO :new.\"FOLDER_ID\"\n\ FROM dual;\n\ EnD;', statements[5])