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
74
web/pgadmin/utils/route.py
Normal file
74
web/pgadmin/utils/route.py
Normal file
@@ -0,0 +1,74 @@
|
||||
#############################################################
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2016, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##############################################################
|
||||
|
||||
from abc import ABCMeta, abstractmethod
|
||||
import unittest
|
||||
|
||||
|
||||
class TestsGeneratorRegistry(ABCMeta):
|
||||
"""
|
||||
class TestsGeneratorRegistry(object)
|
||||
Every module will be registered automatically by its module name.
|
||||
|
||||
Class-level Methods:
|
||||
----------- -------
|
||||
* __init__(...)
|
||||
- This is used to register test modules. You don't need to
|
||||
call this function explicitly. This will be automatically executed,
|
||||
whenever we create a class and inherit from BaseTestGenerator -
|
||||
it will register it as an available module in TestsGeneratorRegistry.
|
||||
By setting the __metaclass__ for BaseTestGenerator to TestsGeneratorRegistry
|
||||
it will create new instance of this TestsGeneratorRegistry per class.
|
||||
|
||||
* load_generators():
|
||||
- This function will load all the modules from __init__()
|
||||
present in registry.
|
||||
"""
|
||||
|
||||
registry = dict()
|
||||
|
||||
def __init__(cls, name, bases, d):
|
||||
|
||||
# Register this type of module, based on the module name
|
||||
# Avoid registering the BaseDriver itself
|
||||
|
||||
if name != 'BaseTestGenerator':
|
||||
TestsGeneratorRegistry.registry[d['__module__']] = cls
|
||||
|
||||
ABCMeta.__init__(cls, name, bases, d)
|
||||
|
||||
@classmethod
|
||||
def load_generators(cls, pkg):
|
||||
|
||||
cls.registry = dict()
|
||||
|
||||
from importlib import import_module
|
||||
from werkzeug.utils import find_modules
|
||||
|
||||
for module_name in find_modules(pkg, False, True):
|
||||
module = import_module(module_name)
|
||||
|
||||
|
||||
import six
|
||||
|
||||
|
||||
@six.add_metaclass(TestsGeneratorRegistry)
|
||||
class BaseTestGenerator(unittest.TestCase):
|
||||
# Defining abstract method which will override by individual testcase.
|
||||
@abstractmethod
|
||||
def runTest(self):
|
||||
pass
|
||||
|
||||
# Initializing app.
|
||||
def setApp(self, app):
|
||||
self.app = app
|
||||
|
||||
# Initializing test_client.
|
||||
def setTestClient(self, test_client):
|
||||
self.tester = test_client
|
||||
Reference in New Issue
Block a user