mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Initial version of a regression test framework
This commit is contained in:
committed by
Dave Page
parent
ffa348fe5d
commit
98d473a7ec
72
web/regression/testsuite.py
Normal file
72
web/regression/testsuite.py
Normal file
@@ -0,0 +1,72 @@
|
||||
#############################################################
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2016, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##############################################################
|
||||
|
||||
""" This file collect all modules/files present in tests directory and add
|
||||
them to TestSuite. """
|
||||
|
||||
import os
|
||||
import sys
|
||||
import unittest
|
||||
from testscenarios.scenarios import generate_scenarios
|
||||
|
||||
# We need to include the root directory in sys.path to ensure that we can
|
||||
# find everything we need when running in the standalone runtime.
|
||||
current_path = os.path.dirname(os.path.realpath(__file__))
|
||||
root = os.path.dirname(current_path)
|
||||
|
||||
if sys.path[0] != root:
|
||||
sys.path.insert(0, root)
|
||||
|
||||
from pgadmin import create_app
|
||||
|
||||
# Create the app!
|
||||
app = create_app()
|
||||
|
||||
# Disabling Cross-site request forgery(CSRF token) for testing purpose.
|
||||
# CSRF prevent session against malicious Web site, or end users who wants to
|
||||
# execute unwanted actions.
|
||||
app.config['WTF_CSRF_ENABLED'] = False
|
||||
|
||||
from pgadmin.utils.route import TestsGeneratorRegistry
|
||||
|
||||
# Registry will load all the testcases/modules from pgadmin path those are
|
||||
# register as BaseTestGenerator.
|
||||
TestsGeneratorRegistry.load_generators('pgadmin')
|
||||
|
||||
# Create test client
|
||||
# werkzeug provides a test client which gives a simple interface to the
|
||||
# application. We can trigger test request to the application.
|
||||
test_client = app.test_client()
|
||||
|
||||
|
||||
def suite():
|
||||
""" Defining test suite which will execute all the testcases present in
|
||||
tests directory according to set priority."""
|
||||
|
||||
pgadmin_suite = unittest.TestSuite()
|
||||
|
||||
modules = []
|
||||
|
||||
for key, klass in TestsGeneratorRegistry.registry.items():
|
||||
gen = klass
|
||||
|
||||
modules.insert(gen.priority, gen)
|
||||
|
||||
for m in modules:
|
||||
obj = m()
|
||||
obj.setTestClient(test_client)
|
||||
scenario = generate_scenarios(obj)
|
||||
pgadmin_suite.addTests(scenario)
|
||||
|
||||
return pgadmin_suite
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
suite = suite()
|
||||
tests = unittest.TextTestRunner(descriptions=True, verbosity=2).run(suite)
|
||||
Reference in New Issue
Block a user