Re: [pgAdmin4][Patch]: Feature #4202 Implement new framework to testReverse Engineering SQL

Поиск
Список
Период
Сортировка
От Akshay Joshi
Тема Re: [pgAdmin4][Patch]: Feature #4202 Implement new framework to testReverse Engineering SQL
Дата
Msg-id CANxoLDcMqJFHUBcRkWRbtKm1h5BJeUSdOgbSvmK0c+drZW19Og@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [pgAdmin4][Patch]: Feature #4202 Implement new framework to testReverse Engineering SQL  (Akshay Joshi <akshay.joshi@enterprisedb.com>)
Ответы Re: [pgAdmin4][Patch]: Feature #4202 Implement new framework to testReverse Engineering SQL  (Ashesh Vashi <ashesh.vashi@enterprisedb.com>)
Список pgadmin-hackers
Hi Dave/Hackers

On Fri, Jun 14, 2019 at 6:10 PM Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:


On Fri, Jun 14, 2019 at 1:59 PM Dave Page <dpage@pgadmin.org> wrote:
Hi

On Thu, Jun 13, 2019 at 12:52 PM Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi Hackers

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.

Thanks.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


--
Thanks & Regards
Akshay Joshi
Sr. Software Architect
EnterpriseDB Software India Private Limited
Mobile: +91 976-788-8246


--
Thanks & Regards
Akshay Joshi
Sr. Software Architect
EnterpriseDB Software India Private Limited
Mobile: +91 976-788-8246

В списке pgadmin-hackers по дате отправления:

Предыдущее
От: Yosry Muhammad
Дата:
Сообщение: Re: [GSoC][Patch] Automatic Mode Detection V1
Следующее
От: Aditya Toshniwal
Дата:
Сообщение: [pgAdmin][RM3174] Distinguish simple tables from tables that areinherited and from which other tables are inherited