Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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)
Ejemplo n.º 8
0
    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)