Example #1
0
 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
Example #2
0
 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
Example #3
0
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))
Example #4
0
 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
Example #6
0
 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
Example #7
0
    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)
Example #8
0
    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)
Example #9
0
    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']
Example #10
0
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
Example #11
0
    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']
Example #12
0
 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]
Example #13
0
 def test_as_context(self):
     with lds_org.session() as lds:
         assert lds.signed_in
Example #14
0
 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
Example #15
0
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
Example #16
0
 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]
Example #17
0
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())
Example #18
0
 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')
Example #19
0
 def test_as_context(self):
     with lds_org.session() as lds:
         assert lds.unitNo