Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1"""
2*Unit testing tools*
3"""
4from fundamentals import utKit
6# OVERRIDES
9class utKit(utKit):
11 """
12 *Override dryx utKit*
13 """
14 # Variable Data Atrributes
16 # Override Variable Data Atrributes
17 # Initialisation
18 def __init__(
19 self,
20 moduleDirectory,
21 dbConn=False
22 ):
23 self.moduleDirectory = moduleDirectory
24 # x-self-arg-tmpx
26 # SETUP PATHS TO COMMON DIRECTORIES FOR TEST DATA
27 self.pathToInputDir = moduleDirectory + "/input/"
28 self.pathToOutputDir = moduleDirectory + "/output/"
30 # SETUP LOGGING
31 self.loggerConfig = """
32 version: 1
33 formatters:
34 file_style:
35 format: '* %(asctime)s - %(name)s - %(levelname)s (%(filename)s > %(funcName)s > %(lineno)d) - %(message)s '
36 datefmt: '%Y/%m/%d %H:%M:%S'
37 console_style:
38 format: '* %(asctime)s - %(levelname)s: %(filename)s:%(funcName)s:%(lineno)d > %(message)s'
39 datefmt: '%H:%M:%S'
40 html_style:
41 format: '<div id="row" class="%(levelname)s"><span class="date">%(asctime)s</span> <span class="label">file:</span><span class="filename">%(filename)s</span> <span class="label">method:</span><span class="funcName">%(funcName)s</span> <span class="label">line#:</span><span class="lineno">%(lineno)d</span> <span class="pathname">%(pathname)s</span> <div class="right"><span class="message">%(message)s</span><span class="levelname">%(levelname)s</span></div></div>'
42 datefmt: '%Y-%m-%d <span class= "time">%H:%M <span class= "seconds">%Ss</span></span>'
43 handlers:
44 console:
45 class: logging.StreamHandler
46 level: DEBUG
47 formatter: console_style
48 stream: ext://sys.stdout
49 root:
50 level: DEBUG
51 handlers: [console]"""
53 # Override Variable Data Atrributes
54 self.dbConfig = False
55 if dbConn:
56 self.dbConfig = """
57 version: 1
58 db: dryx_unit_testing
59 host: localhost
60 user: unittesting
61 password: utpass
62 """
64 return
66 def get_project_root(self):
67 """
68 *Get the root of the `python` package - useful for getting files in the root directory of a project*
70 **Return:**
71 - ``rootPath`` -- the root path of a project
72 """
73 import os
74 rootPath = os.path.dirname(__file__)
76 return rootPath
78 def refresh_database(self):
79 """
80 *Refresh the unit test database*
81 """
82 from fundamentals.mysql import directory_script_runner
83 from fundamentals import tools
84 packageDirectory = self.get_project_root()
85 su = tools(
86 arguments={"settingsFile": packageDirectory +
87 "/test_settings.yaml"},
88 docString=__doc__,
89 logLevel="DEBUG",
90 options_first=False,
91 projectName=None,
92 defaultSettingsFile=False
93 )
94 arguments, settings, log, dbConn = su.setup()
95 directory_script_runner(
96 log=log,
97 pathToScriptDirectory=packageDirectory + "/tests/input",
98 databaseName=settings["database settings"]["db"],
99 force=True,
100 loginPath=settings["database settings"]["loginPath"],
101 waitForResult=True,
102 successRule=None,
103 failureRule=None
104 )