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