Statistics
| Branch: | Tag: | Revision:

root / test / kkconfig.py @ a812c719

History | View | Annotate | Download (2.3 kB)

1 239b068c Christos KK Loverdos
### IMPORTS ###
2 a812c719 Christos KK Loverdos
import sys
3 a812c719 Christos KK Loverdos
import os
4 239b068c Christos KK Loverdos
# The following import is copied from snf-tools/syneffo_tools/burnin.py
5 239b068c Christos KK Loverdos
# Thank you John Giannelos <johngian@grnet.gr>
6 239b068c Christos KK Loverdos
# Use backported unittest functionality if Python < 2.7
7 239b068c Christos KK Loverdos
try:
8 239b068c Christos KK Loverdos
    import unittest2 as unittest
9 239b068c Christos KK Loverdos
except ImportError:
10 239b068c Christos KK Loverdos
    if sys.version_info < (2, 7):
11 239b068c Christos KK Loverdos
        raise Exception("The unittest2 package is required for Python < 2.7")
12 239b068c Christos KK Loverdos
    import unittest
13 239b068c Christos KK Loverdos
14 239b068c Christos KK Loverdos
from commissioning.clients.http import HTTP_API_Client
15 239b068c Christos KK Loverdos
from commissioning import QuotaholderAPI
16 f611ef3d Prodromos Gerakios
import random 
17 239b068c Christos KK Loverdos
18 239b068c Christos KK Loverdos
### DEFS ###
19 239b068c Christos KK Loverdos
def new_quota_holder_client():
20 239b068c Christos KK Loverdos
    """
21 239b068c Christos KK Loverdos
    Create a new quota holder api client
22 239b068c Christos KK Loverdos
    """
23 239b068c Christos KK Loverdos
    class QuotaholderHTTP(HTTP_API_Client):
24 239b068c Christos KK Loverdos
        api_spec = QuotaholderAPI()
25 239b068c Christos KK Loverdos
26 239b068c Christos KK Loverdos
    global QH_URL
27 239b068c Christos KK Loverdos
    return QuotaholderHTTP(QH_URL)
28 239b068c Christos KK Loverdos
29 f6d15c9b Christos KK Loverdos
def run_test_case(test_case):
30 f6d15c9b Christos KK Loverdos
    """
31 f6d15c9b Christos KK Loverdos
    Runs the test_case and returns the result
32 f6d15c9b Christos KK Loverdos
    """
33 f6d15c9b Christos KK Loverdos
    # Again from snf-tools/synnefo_tools/burnin.py
34 f6d15c9b Christos KK Loverdos
    # Thank you John Giannelos <johngian@grnet.gr>
35 f6d15c9b Christos KK Loverdos
    print("Running {0}".format(test_case))
36 f6d15c9b Christos KK Loverdos
    import sys
37 f6d15c9b Christos KK Loverdos
    suite = unittest.TestLoader().loadTestsFromTestCase(test_case)
38 f6d15c9b Christos KK Loverdos
    runner = unittest.TextTestRunner(stream = sys.stderr, verbosity = 2, failfast = True, buffer = False)
39 f6d15c9b Christos KK Loverdos
    return runner.run(suite)
40 f6d15c9b Christos KK Loverdos
41 f6d15c9b Christos KK Loverdos
def run_test_cases(test_cases):
42 f6d15c9b Christos KK Loverdos
    for test_case in test_cases:
43 f6d15c9b Christos KK Loverdos
        run_test_case(test_case)
44 f6d15c9b Christos KK Loverdos
45 f611ef3d Prodromos Gerakios
def rand_string():
46 f611ef3d Prodromos Gerakios
   alphabet = 'abcdefghijklmnopqrstuvwxyz'
47 f611ef3d Prodromos Gerakios
   min = 5
48 f611ef3d Prodromos Gerakios
   max = 15
49 f611ef3d Prodromos Gerakios
   string=''
50 f611ef3d Prodromos Gerakios
   for x in random.sample(alphabet,random.randint(min,max)):
51 f611ef3d Prodromos Gerakios
    string += x
52 f611ef3d Prodromos Gerakios
   return string
53 f611ef3d Prodromos Gerakios
54 a812c719 Christos KK Loverdos
def environ_get(key, default_value = ''):
55 a812c719 Christos KK Loverdos
    if os.environ.has_key(key):
56 a812c719 Christos KK Loverdos
        return (os.environ[key], True)
57 a812c719 Christos KK Loverdos
    else:
58 a812c719 Christos KK Loverdos
        return (default_value, False)
59 a812c719 Christos KK Loverdos
60 a812c719 Christos KK Loverdos
def printf(fmt, *args):
61 a812c719 Christos KK Loverdos
    print(fmt.format(*args))
62 a812c719 Christos KK Loverdos
63 b9ec4de7 Christos KK Loverdos
### CLASSES ###
64 b9ec4de7 Christos KK Loverdos
class QHTestCase(unittest.TestCase):
65 b9ec4de7 Christos KK Loverdos
    def setUp(self):
66 b9ec4de7 Christos KK Loverdos
        self.qh = new_quota_holder_client()
67 b9ec4de7 Christos KK Loverdos
68 b9ec4de7 Christos KK Loverdos
    def tearDown(self):
69 b9ec4de7 Christos KK Loverdos
        del self.qh
70 b9ec4de7 Christos KK Loverdos
71 b9ec4de7 Christos KK Loverdos
72 239b068c Christos KK Loverdos
### VARS ###
73 a812c719 Christos KK Loverdos
DefaultOrCustom = {
74 a812c719 Christos KK Loverdos
    True: "default",
75 a812c719 Christos KK Loverdos
    False: "custom"
76 a812c719 Christos KK Loverdos
}
77 a812c719 Christos KK Loverdos
78 a812c719 Christos KK Loverdos
QH_HOST, qh_using_default_host = environ_get("TEST_QH_HOST", "127.0.0.1")
79 a812c719 Christos KK Loverdos
QH_PORT, qh_using_default_port = environ_get("TEST_QH_PORT", "35080")
80 a812c719 Christos KK Loverdos
81 a812c719 Christos KK Loverdos
printf("Will connect to QH_HOST = {0} [{1}]", QH_HOST, DefaultOrCustom[qh_using_default_host])
82 a812c719 Christos KK Loverdos
printf("            and QH_PORT = {0} [{1}]", QH_PORT, DefaultOrCustom[qh_using_default_port])
83 a812c719 Christos KK Loverdos
84 a812c719 Christos KK Loverdos
QH_URL = "http://{0}:{1}/api/quotaholder/v".format(QH_HOST, QH_PORT)