def test_get_as_url(self): with lds_org.session() as lds: key = 'X-LDS-org' lds.headers.update({key: 'hello'}) rv = lds.get('http://headers.jsontest.com') json = rv.json() assert key in json
def test_my_photo(self): with lds_org.session() as lds: rv = lds.get('current-user-id') my_id = rv.json() rv = lds.get('photo-url', 'individual', member=my_id) data = rv.json() assert 'photoType' in data assert data['photoType'] == 'INDIVIDUAL' assert 'largeUri' in data
def stake_households(): Unit = collections.namedtuple('Unit', 'name number') with lds_org.session() as lds: rv = lds.get('stake-units') data = rv.json() units = sorted(Unit(_['wardName'], _['wardUnitNo']) for _ in data) for unit in units: rv = lds.get('unit-membership', unit=unit.number) print('{:4} [unit {}]{}'.format(len(rv.json()), unit.number, unit.name))
def test_get_as_url(self): """Verify headers are loaded.""" with lds_org.session() as lds: key = 'X-LDS-org' lds.headers.update({key: 'hello'}) rv = lds.get('http://headers.jsontest.com') if 503 == rv.status_code: "Remote system is over quota" pytest.xfail("jsontest.com is over quota. Try later.") assert 200 == rv.status_code json = rv.json() assert key in json
def get_callings(): import json import lds_org with lds_org.session(creds.usr, creds.pwd) as lds: rv = lds.get('callings-with-dates') members = get_members_callings(rv) sub_orgs = get_sub_orgs_callings() org_chart = get_org_chart(rv, members) org_chart = merge_dicts(sub_orgs, org_chart) # with open('C:\\Dev\\Python\\LDSIO\\json_formats\\org_chart_dict.json', 'w+') as f1: # json.dump(org_chart, f1, indent=4) return org_chart
def test_get_using_unit(self): Unit = collections.namedtuple('Unit', 'name number') with lds_org.session() as lds: rv = lds.get('stake-units') data = rv.json() assert len(data) units = sorted(Unit(_['wardName'], _['wardUnitNo']) for _ in data) assert len(units) for unit in units: rv = lds.get('unit-membership', unit=unit.number) households = len(rv.json()) assert households > 30
def test_logging(self): """Checking the logger """ pseudo = StringIO() handler = logging.StreamHandler(pseudo) lds_org.logger.setLevel(logging.DEBUG) lds_org.logger.addHandler(handler) with lds_org.session() as lds: rv = lds.get('current-user-id') assert rv.status_code == 200 log = pseudo.getvalue().split('\n') assert 'Get endpoints' in log[0] lds_org.logger.removeHandler(handler)
def test_logging(self): """Checking the logger """ pseudo = StringIO() handler = logging.StreamHandler(pseudo) lds_org.logger.setLevel(logging.DEBUG) lds_org.logger.addHandler(handler) with lds_org.session() as lds: rv = lds.get('current-user-id') assert rv.status_code == 200 assert rv.json() > 1000000 log = pseudo.getvalue().split('\n') assert len(log) == 13 lds_org.logger.removeHandler(handler)
def test_endpoint_substitution(self): """Get the most recently completed calendar event. """ zero = datetime.datetime.utcfromtimestamp(0) now = datetime.datetime.utcnow() past = now - datetime.timedelta(days=60) start = (past - zero).total_seconds() * 1000 end = (now - zero).total_seconds() * 1000 with lds_org.session() as lds: rv = lds.get('cal2x-events', start, end) events = rv.json() assert len(events) event = events[-1] rv = lds.get('cal2x-event', event['id']) assert rv.status_code == 200 assert rv.json()['id'] == event['id']
def get_sub_orgs_callings(): import lds_org import creds import json d = {} with lds_org.session(creds.usr, creds.pwd) as lds: rv = lds.get( 'https://lds.org/mls/mbr/services/orgs/sub-orgs-with-callings?lang=eng' ) for org in rv.json(): orgName = org_name_replace(org['defaultOrgName']) d[orgName] = [] # print('\n{0}\n{1}'.format(orgName, '-------------------------------------')) for call in org['callings']: # print_calling(call) dict_calling(d, orgName, call) for suborg in org['children']: for call in suborg['callings']: # print_calling(call) dict_calling(d, orgName, call) # with open('C:\\Dev\\Python\\LDSIO\\json_formats\\subOrgDict.json', 'w+') as f1: # json.dump(d, f1, indent=4) return d
def test_endpoint_photo_url(self): with lds_org.session() as lds: rv = lds.get('current-user-detail') assert 200 == rv.status_code assert lds.unit_number == '' details = rv.json() # Needs member number with pytest.raises(KeyError) as err: lds.get('photo-url') assert 'member' in err.args # Needs positional arguments with pytest.raises(lds_org.Error) as err: lds.get('photo-url', member=details['individualId']) assert err.value.args[0].endswith('positional arguments') rv = lds.get('photo-url', 'individual', member=details['individualId']) assert 200 == rv.status_code photo = rv.json() assert 'individualId' in photo assert details['individualId'] == photo['individualId']
def test_get_using_endpoint(self): with lds_org.session() as lds: rv = lds.get('stake-units') data = rv.json() assert len(data) assert 'wardName' in data[0]
def test_as_context(self): with lds_org.session() as lds: assert lds.signed_in
def test_endpoint_needs_more(self): with lds_org.session() as lds: with pytest.raises(ValueError) as err: lds.get('cal2x-event') assert 'needs arguments' in err.value.message
import lds_org lds = lds_org.LDSOrg() lds.signin(username, password) rv = lds.get('current-user-id') print(rv.json()) with lds_org.session() as lds: rv = lds.get(some_context_of_interest) # TODO
def my_photo(): with lds_org.session() as lds: rv = lds.get('current-user-id') my_id = rv.json() rv = lds.get('photo-url', 'individual', member=my_id) pprint(rv.json())
def test_endpoint_needs_more(self): with lds_org.session() as lds: with pytest.raises(lds_org.Error) as err: lds.get('cal2x-event') assert err.value.args[0].endswith('positional arguments')
def test_as_context(self): with lds_org.session() as lds: assert lds.unitNo