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) |