22
33import argparse
44import json
5+ import re
56from datetime import date , datetime
67
7- from e3dc import E3DC
8-
98
109def json_serial (obj ):
1110 """JSON serializer for objects not serializable by default json code."""
@@ -16,11 +15,21 @@ def json_serial(obj):
1615
1716def printJson (obj ):
1817 """Print a json object with a datetime obect."""
19- print (json .dumps (obj , indent = 2 , default = json_serial ))
18+ output = json .dumps (obj , indent = 2 , default = json_serial )
19+ output = re .sub (r"(.*\"serial.*\": \")(.*)(\",*)" , r"\1redacted\3" , output , re .M )
20+ output = re .sub (r"(.*\"serial.*\": )(\d+)(,*)" , r"\g<1>0\g<3>" , output , re .M )
21+ print (output )
2022
2123
2224parser = argparse .ArgumentParser (description = "E3DC tests" )
2325parser .add_argument ("-c" , "--config" , help = "config of E3DC" , default = "{}" )
26+ parser .add_argument (
27+ "-m" ,
28+ "--module" ,
29+ help = "E3DC module source to use for test" ,
30+ choices = ["source" , "default" ],
31+ default = "source" ,
32+ )
2433requiredNamed = parser .add_argument_group ("required named arguments" )
2534requiredNamed .add_argument (
2635 "-i" , "--ipaddress" , help = "IP address of E3DC" , required = True
@@ -30,8 +39,21 @@ def printJson(obj):
3039requiredNamed .add_argument ("-k" , "--key" , help = "key of E3DC" , required = True )
3140args = vars (parser .parse_args ())
3241
33- e3dc = E3DC (
34- E3DC .CONNECT_LOCAL ,
42+ if args ["module" ] == "source" :
43+ import sys
44+ from pathlib import Path
45+
46+ sys .path .insert (0 , str (Path (__file__ ).resolve ().parents [1 ]))
47+ import e3dc
48+
49+ print ("Running Test for E3DC from sources!\n " )
50+ else :
51+ import e3dc
52+
53+ print ("Running Test for E3DC {}\n " .format (e3dc .__version__ ))
54+
55+ e3dc_obj = e3dc .E3DC (
56+ e3dc .E3DC .CONNECT_LOCAL ,
3557 ipAddress = args ["ipaddress" ],
3658 username = args ["username" ],
3759 password = args ["password" ],
@@ -46,8 +68,10 @@ def printJson(obj):
4668 "get_db_data" ,
4769 "get_system_info" ,
4870 "get_system_status" ,
71+ "get_batteries" ,
4972 "get_battery_data" ,
5073 "get_batteries_data" ,
74+ "get_pvis" ,
5175 "get_pvi_data" ,
5276 "get_pvis_data" ,
5377 "get_powermeters" ,
@@ -58,6 +82,6 @@ def printJson(obj):
5882
5983for method in methods :
6084 print (method + "():" )
61- method = getattr (e3dc , method )
85+ method = getattr (e3dc_obj , method )
6286 printJson (method (keepAlive = True ))
6387 print ()
0 commit comments