Example #1
0
    def test_fixtures_by_id(self):
        fixture_xml = generator.get_fixture_by_id('user-groups',
                                                  self.casexml_user,
                                                  version=V2)
        self._check_fixture([fixture_xml])

        fixture_xml = generator.get_fixture_by_id('item-list:sa_provinces',
                                                  self.casexml_user,
                                                  version=V2)
        self._check_fixture([fixture_xml],
                            has_groups=False,
                            item_lists=[SA_PROVINCES])

        fixture_xml = generator.get_fixture_by_id('item-list:fr_provinces',
                                                  self.casexml_user,
                                                  version=V2)
        self._check_fixture([fixture_xml],
                            has_groups=False,
                            item_lists=[FR_PROVINCES])

        fixture_xml = generator.get_fixture_by_id('user-locations',
                                                  self.casexml_user,
                                                  version=V2)
        self.assertIsNone(fixture_xml)

        fixture_xml = generator.get_fixture_by_id('bad ID',
                                                  self.casexml_user,
                                                  version=V2)
        self.assertIsNone(fixture_xml)
    def test_fixtures_by_id(self):
        fixture_xml = generator.get_fixture_by_id('user-groups', self.casexml_user, version=V2)
        self._check_fixture([fixture_xml])

        fixture_xml = generator.get_fixture_by_id('item-list:sa_provinces', self.casexml_user, version=V2)
        self._check_fixture([fixture_xml], has_groups=False, item_lists=[SA_PROVINCES])

        fixture_xml = generator.get_fixture_by_id('item-list:fr_provinces', self.casexml_user, version=V2)
        self._check_fixture([fixture_xml], has_groups=False, item_lists=[FR_PROVINCES])

        fixture_xml = generator.get_fixture_by_id('user-locations', self.casexml_user, version=V2)
        self.assertIsNone(fixture_xml)

        fixture_xml = generator.get_fixture_by_id('bad ID', self.casexml_user, version=V2)
        self.assertIsNone(fixture_xml)
Example #3
0
def get_fixtures(request, domain, user_id, fixture_id=None):
    try:
        user = CommCareUser.get_by_user_id(user_id)
    except CouchUser.AccountTypeError:
        err = ("You can't use case sharing or fixtures as a %s. "
               "Login as a mobile worker and try again."
               ) % settings.WEB_USER_TERM,
        return HttpResponse(err, status=412, content_type="text/plain")

    if not user:
        raise Http404

    assert user.is_member_of(domain)
    restore_user = user.to_ota_restore_user()
    if not fixture_id:
        ret = ElementTree.Element("fixtures")
        for fixture in generator.get_fixtures(restore_user, version=V2):
            ret.append(fixture)
        return HttpResponse(ElementTree.tostring(ret), content_type="text/xml")
    else:
        fixture = generator.get_fixture_by_id(fixture_id,
                                              restore_user,
                                              version=V2)
        if not fixture:
            raise Http404
        assert len(fixture.getchildren()
                   ) == 1, 'fixture {} expected 1 child but found {}'.format(
                       fixture_id, len(fixture.getchildren()))
        return HttpResponse(ElementTree.tostring(fixture.getchildren()[0]),
                            content_type="text/xml")
Example #4
0
def get_fixtures(request, domain, user_id, fixture_id=None):
    try:
        user = CommCareUser.get_by_user_id(user_id)
    except CouchUser.AccountTypeError:
        err = ("You can't use case sharing or fixtures as a %s. " 
               "Login as a mobile worker and try again.") % settings.WEB_USER_TERM,
        return HttpResponse(err, status=412, content_type="text/plain")
    
    if not user:
        raise Http404

    assert user.is_member_of(domain)
    restore_user = user.to_ota_restore_user()
    if not fixture_id:
        ret = ElementTree.Element("fixtures")
        for fixture in generator.get_fixtures(restore_user, version=V2):
            ret.append(fixture)
        return HttpResponse(ElementTree.tostring(ret), content_type="text/xml")
    else:
        fixture = generator.get_fixture_by_id(fixture_id, restore_user, version=V2)
        if not fixture:
            raise Http404
        assert len(fixture.getchildren()) == 1, 'fixture {} expected 1 child but found {}'.format(
            fixture_id, len(fixture.getchildren())
        )
        return HttpResponse(ElementTree.tostring(fixture.getchildren()[0]), content_type="text/xml")