pgAdmin 4 Test Framework ======================== This regression framework is designed for executing the individual unit tests available for the existing modules and to help catch regressions. In addition to that this should be helpful for other new plugged-in module that can come in later in time. Assumptions ----------- - pgAdmin must be configured to run in Server mode, with SMTP configured. - There should be a single server group present in the browser. - Currently each module will have testcases related to ONLY GET, POST, PUT, and DELETE api’s. General Information ------------------- 1) The required test cases should be placed under the /tests directory of the respective module. - 'pgadmin/browser/tests' directory contains test-cases for following modules: 1. Login Page 2. Reset Password Page 3. Change Password Page 4. Logout Page - 'pgAdmin4/web/pgadmin/browser/server_groups/tests/' shows an example of tree traversal of the pgAdmin modules and how the test folder is required for each individual module. - 'pgadmin/browser/server_groups/servers/tests/' directory will have separate file for each test-case: 1. test_server_add.py 2. test_server_delete.py 3. test_server_get.py 4. test_server_update.py 2) The pgAdmin4 source tree includes a file template for the server configuration named ‘test_config.json.in' in the ‘pgAdmin4/web/regression’ directory. After completing the pgAdmin4 configuration, you must make a working copy of the template called test_config.json before modifying the file contents. 2a) The following command copies the test_config.json.in file, creating a configuration file named test_config.json # cp pgadmin4/web/regression/test_config.json.in \ pgadmin4/web/regression/test_config.json 2b) After creating the server configuration file, add (or modify) parameter values as per requirements. The configuration files are owned by root/user. The pgAdmin4 regression framework expects to find the files in the directory '//web/regression/'. If you move the file to another location, you must create a symbolic link that specifies the new location. 2c) Specifying Server Configuration file: The user can use the parameters in the configuration file to specify the server details and connection properties as per their local setup. The test_config file is in json format and property values are case-sensitive. Test Data Details ----------------- "pgAdmin4 Login Credentials": test_login_username = login id test_login_password = login password test_new_password = new login password "test_server_credentials": test_name = Server/database Name test_db_username = Database Username test_host = IP Address of Server test_db_password = Database Password test_db_port = Database Port test_maintenance_db = Maintenance Database test_sslmode = SSL Mode test_comment = Any Comments to add Execution: ----------- - The test framework is modular and pluggable and dynamically locates tests for modules which are discovered at runtime. All test cases are found and registered automatically by its module name in 'pgadmin4/web/pgadmin/utils/test.py' file. - Execute test framework run 'regression/testsuite.py' file.