def test_api_content_menus(self): """ test endpoint - GET /api/content/menus Lists Menu :return: """ request = { 'method': 'GET', 'path': PATH_CONTENT_MENUS, 'headers': { "date": "%s" % datetime.datetime.utcnow().isoformat(), "Content-Type": "application/json" } } request = signer.sign(request, { 'AccessKeyId': ACCESS_KEY_ID, 'SecretAccessKey': SECRET_ACCESS_KEY }) r = requests.get( url=URL_CONTENT_MENUS, headers=request['headers'] ) self.assertEqual(200, r.status_code)
def test_signer(self): """ Basic test - auth headers generation, sign, verify :return: """ request = { 'headers': { 'date': "%s" % datetime.datetime.utcnow().isoformat() } } request = signer.sign(request, { 'AccessKeyId': ACCESS_KEY_ID, 'SecretAccessKey': SECRET_ACCESS_KEY }) self.assertIn('headers', request) self.assertIn('X-Fidem-Date', request['headers']) self.assertIn('Authorization', request["headers"]) match = re.match(REGEX_FIDEM_AUTH, request['headers']['Authorization']) self.assertIsNotNone(match) result = signer.verify(request, { 'AccessKeyId': ACCESS_KEY_ID, 'SecretAccessKey': SECRET_ACCESS_KEY }) self.assertTrue(result)
def test_api_members_challenges_todo(self): """ test endpoint - GET /api/members/{member-id}/challenges/todo Gets all member challenge to do :return: """ test_member_id = "E1xJe_e8Y" path = "%s/%s/challenges/todo" % (PATH_MEMBERS, test_member_id) url = "%s%s" % (URL_BASE, path) request = { "method": "GET", "path": path, "headers": { "date": "%s" % datetime.datetime.utcnow().isoformat(), "Content-Type": "application/json" } } request = signer.sign(request, { 'AccessKeyId': ACCESS_KEY_ID, 'SecretAccessKey': SECRET_ACCESS_KEY }) match = re.match(REGEX_FIDEM_AUTH, request['headers']['Authorization']) self.assertIsNotNone(match) r = requests.get( url=url, headers=request['headers'] ) self.assertEqual(200, r.status_code)
def test_api_members_get(self): """ test endpoint - GET /api/members/{memberId} Get member profile :return: """ test_member_id = "E1xJe_e8Y" url = "%s/%s" % (URL_MEMBERS, test_member_id) request = { 'method': 'GET', 'path': '%s/%s' % (PATH_MEMBERS, test_member_id), 'headers': { "date": "%s" % datetime.datetime.utcnow().isoformat(), "Content-Type": "application/json" } } request = signer.sign(request, { 'AccessKeyId': ACCESS_KEY_ID, 'SecretAccessKey': SECRET_ACCESS_KEY }) match = re.match(REGEX_FIDEM_AUTH, request['headers']['Authorization']) self.assertIsNotNone(match) r = requests.get( url=url, headers=request['headers'] ) self.assertEqual(200, r.status_code)
def test_api_gamification_actions(self): """ test endpoint - POST /api/gamification/actions Log an action :return: """ request = { "method": "POST", "path": PATH_GAMIFICATION_ACTIONS, "headers": { "date": "%s" % datetime.datetime.utcnow().isoformat(), "Content-Type": "application/json" }, "body": { "type": "test" } } request = signer.sign(request, { 'AccessKeyId': ACCESS_KEY_ID, 'SecretAccessKey': SECRET_ACCESS_KEY }) r = requests.post( url=URL_GAMIFICATION_ACTIONS, headers=request['headers'], json=request['body'] ) self.assertEqual(200, r.status_code)
def test_api_content_pages(self): """ test endpoint - GET /api/content/pages/{page-id} Get page :return: """ test_page_id = "NJlecXOJc" url = "%s/%s" % (URL_CONTENT_PAGES, test_page_id) request = { 'method': 'GET', 'path': '%s/%s' % (PATH_CONTENT_PAGES, test_page_id), 'headers': { "date": "%s" % datetime.datetime.utcnow().isoformat(), "Content-Type": "application/json" } } request = signer.sign(request, { 'AccessKeyId': ACCESS_KEY_ID, 'SecretAccessKey': SECRET_ACCESS_KEY }) r = requests.get( url=url, headers=request['headers'] ) self.assertEqual(200, r.status_code)
def test_api_members_post(self): """ test endpoint - POST /api/members Create member :return: """ request = { "method": "POST", "path": PATH_MEMBERS, "headers": { "date": "%s" % datetime.datetime.utcnow().isoformat(), 'Content-Type': 'application/json' }, "body": { "external_id": unicode(uuid.uuid4()), "profile": { "alias": "jcvd", "first_name": "JC", "last_name": "VD", "picture_url": "https://mightycast-api-dev.appspot.com/img/ok.png", "email": "*****@*****.**", "phone": "1-976-TAMERE-0", "address": { "line": "1234 Sesame Street", "city": "Beverly Hills", "state": "CA", "country": "US", "postal_code": "90210" } }, "preferred_locale": "EN" } } request = signer.sign(request, { 'AccessKeyId': ACCESS_KEY_ID, 'SecretAccessKey': SECRET_ACCESS_KEY }) body = json.dumps(request['body']) r = requests.post( url=URL_MEMBERS, headers=request['headers'], json=request['body'] ) self.assertEqual(201, r.status_code)
def test_api_members_put(self): """ test endpoint - PUT /api/members/{member-id} Update member profile :return: """ test_member_id = "E1xJe_e8Y" url = "%s/%s" % (URL_MEMBERS, test_member_id) request = { 'method': 'GET', 'path': '%s/%s' % (PATH_MEMBERS, test_member_id), 'headers': { "date": "%s" % datetime.datetime.utcnow().isoformat(), "Content-Type": "application/json" } } request = signer.sign(request, { 'AccessKeyId': ACCESS_KEY_ID, 'SecretAccessKey': SECRET_ACCESS_KEY }) r = requests.get( url=url, headers=request['headers'] ) self.assertEqual(200, r.status_code) dico = r.json() self.assertIn('data', dico) self.assertIn('__v', dico['data']) version = dico['data']['__v'] request = { "method": "PUT", "path": "%s/%s" % (PATH_MEMBERS, test_member_id), "headers": { "date": "%s" % datetime.datetime.utcnow().isoformat(), "Content-Type": "application/json" }, "body": { "__v": version, "profile": { "picture_url": "https://mightycast-api-dev.appspot.com/img/ok.png" } } } request = signer.sign(request, { 'AccessKeyId': ACCESS_KEY_ID, 'SecretAccessKey': SECRET_ACCESS_KEY }) match = re.match(REGEX_FIDEM_AUTH, request['headers']['Authorization']) self.assertIsNotNone(match) r = requests.put( url=url, headers=request['headers'], json=request['body'] ) self.assertEqual(200, r.status_code)