-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_celo.py
59 lines (43 loc) · 1.74 KB
/
test_celo.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from __future__ import print_function
from passwd import Passwd
import json
import os
import pytest
from shutil import copyfile
root_dir = os.path.dirname(__file__)
data = {
'credentials_filename': os.path.join(root_dir, "test_credentials.json"),
'domains': [],
'credentials': [],
'wrote_backup': False,
}
def _get_domains():
for (dirpath, dirnames, filenames) in os.walk(os.path.join(root_dir, "manifests")):
data['domains'].extend(['.'.join(f.split('.')[:-1]) for f in filenames])
break # to prevent recursion
def _get_credentials():
data['credentials'] = json.load(open(data['credentials_filename']))
def _do_backup():
if data['wrote_backup']:
return
copyfile(data['credentials_filename'], data['credentials_filename'] + ".bak")
def _write_credentials():
_do_backup()
data['credentials'] = json.dump(open(data['credentials_filename'], 'w'))
_get_domains()
_get_credentials()
@pytest.mark.parametrize('domain', data['domains'])
def test_has_credentials(domain):
assert domain in data['credentials'], "No credentials for domain {}".format(domain)
@pytest.mark.parametrize('domain', data['credentials'].keys())
def test_login(domain):
creds = data['credentials'][domain]
with Passwd(domain) as passwd:
assert passwd.sign_in(creds['user'], creds['pass']), "Could not sign in to {}".format(domain)
@pytest.mark.parametrize('domain', data['credentials'].keys())
def test_fail_login(domain):
creds = data['credentials'][domain]
with Passwd(domain) as passwd:
assert not passwd.sign_in(creds['user'], 'notmypassword'), "Could sign in to {} with invalid password".format(domain)
# @pytest.mark.parametrize('domain', data['credentials'].keys())
# def test_change(domain):