I have implemented the new test framework to test the Reverse Engineering SQL. I have integrated it as a part of API/Regression test suite. It will work when we run all the test cases or module wise test case.
How it works: Attached patch contains the generic framework to read all the JSON files from the tests->version based (example 9.6_plus, 10_plus or default) folder. Run all the test scenarios present in the JSON file in sequential order.
Format of the JSON file is mentioned in "<path_of_source>web/pgadmin/browser/server_groups/servers/databases/casts/tests/default/test.json"
For expected SQL we will have following two options:
Provide the expected sql in scenario itself as parameter "expected_sql" : "<SQL>".
Create a output file with any name in the same directory where the JSON file resides and specify the parameter "expected_sql_file": "<name of the file>"
Attached patch contains both the above mentioned examples.
Please review it.
Nice!
A few comments:
- The scenario name should be "Reverse Engineered SQL Test Cases"
- After the scenario name is output, can we output a \n so the next line isn't appended to the name?
Will fix the above.
- How do we run only the re_sql tests? I tried the obvious ways (e.g. python runtests.py --pkg regression.re_sql.tests.test_resql.ReverseEngineeringSQLTestCase) but got errors. Please add an example to web/regression/README.
It is not a pgadmin module and we have kept it in regression folder, so will have to change the existing code. I have tried but facing issues when run only "regression.re_sql.tests", will continue working on this.
Can we add a new parameter to --pkg "resql" to run all the reverse engineered test cases for all the modules, it just like parameter "all" which is used to run all the regression tests. Following will be the scenario if we add new parameter:
If we run --pkg all, run all the API and resql test cases.
If we run --pkg <module list>, run the API and resql test cases for the specified module list
if we run --pkg resql, run all the resql test cases only.
- Once we have a way to run these tests only, please add a "make check-resql" target to the Makefile.
- Can the expected output be formatted in the JSON such that it doesn't use \n, but uses regular line breaks? That would make it easier to copy/paste.
I have tried that during implementation, but JSON does not allow line-breaks.
From:
Aditya Toshniwal Date: Subject:
[pgAdmin][RM3174] Distinguish simple tables from tables that areinherited and from which other tables are inherited
Есть вопросы? Напишите нам!
Соглашаюсь с условиями обработки персональных данных
✖
By continuing to browse this website, you agree to the use of cookies. Go to Privacy Policy.