コード例 #1
2
ファイル: unitTest.py プロジェクト: toomoresuch/pysonengine
    def _assert_create(self, response):

        # status code の確認

        self.assertEqual(response.status_code, 200)

        # response に含まれるデータの正誤

        obj = json.loads(response.data)
        model = PEDoc.get_by_key_name(obj['_docId'])

        self.assertEqual(obj['_docId'], model.key().name())
        self.assertEqual(obj['_createdAt'], model.createdAt.isoformat())
        self.assertEqual(obj['_updatedAt'], model.updatedAt.isoformat())
        self.assertEqual(obj['docType'], 'myDoc')

        self.assertEqual(obj['boolean'], [True, False])
        self.assertEqual(obj['double'], 20.0)
        self.assertEqual(obj['string'], 'Hoge')

        # response に含まれないデータの正誤

        self.assertEqual(model.createdBy.email(), gae_test_base.LOGGED_IN_USER)
        self.assertEqual(model.updatedBy.email(), gae_test_base.LOGGED_IN_USER)
        self.assertEqual(model.schemaVersion, 1)
        self.assertEqual(model.version, 1)
コード例 #2
0
ファイル: unitTest.py プロジェクト: toomoresuch/pysonengine
    def _assert_update(
        self,
        first_response,
        second_response,
        key,
        value,
        ):

        # status code の確認

        self.assertEqual(second_response.status_code, 200)

        # データに変更が無いもの

        obj = json.loads(first_response.data)
        updated_obj = json.loads(second_response.data)
        updated_model = PEDoc.get_by_key_name(updated_obj['_docId'])

        self.assertEqual(updated_obj['_createdAt'], obj['_createdAt'])
        self.assertEqual(updated_obj['_docId'], obj['_docId'])
        self.assertEqual(updated_obj['docType'], 'myDoc')

        self.assertEqual(updated_model.createdBy.email(),
                         gae_test_base.LOGGED_IN_USER)
        self.assertEqual(updated_model.updatedBy.email(),
                         gae_test_base.LOGGED_IN_USER)
        self.assertEqual(updated_model.schemaVersion, 1)
        self.assertEqual(updated_model.version, 1)

        # データに変更が有るもの

        self.assertTrue(updated_obj['_updatedAt'] > obj['_updatedAt'])
        self.assertEqual(updated_obj[key], value)
コード例 #3
0
ファイル: handlers.py プロジェクト: toomoresuch/pysonengine
    def get(self, doc_type, doc_id):
        model = PEDoc.get_by_key_name(doc_id)

        try:
            result = PEDoc.convert_dict(model)
        except AttributeError:
            return Response(status=404)

        return render_escaped_json_response(result)
コード例 #4
0
ファイル: handlers.py プロジェクト: toomoresuch/pysonengine
    def put(self, doc_type):
        try:
            (doc_values, doc_id) = self._get_doc_values_and_id(self.request)
        except NotFound:
            return Response(status=404)

        if doc_id and PEDoc.get_by_key_name(doc_id) is None:
            return Response(status=404)

        return self._after(doc_id, doc_type, doc_values)
コード例 #5
0
ファイル: handlers.py プロジェクト: toomoresuch/pysonengine
    def put(self, doc_type, doc_id):
        if PEDoc.get_by_key_name(doc_id) is None:
            return Response(status=404)

        try:
            doc_values = self._get_doc_values(self.request)
        except NotFound:
            return Response(status=404)

        return self._after(doc_id, doc_type, doc_values)
コード例 #6
0
ファイル: handlers.py プロジェクト: toomoresuch/pysonengine
    def _after(
        self,
        doc_id,
        doc_type,
        doc_values,
        ):

        if doc_id and PEDoc.get_by_key_name(doc_id):
            try:
                result = PEDoc.update_and_get_by_dict(doc_id, doc_type,
                        doc_values)
            except ConflictError:
                return Response(status=409)
            except InternalServerError:
                return Response(status=500)
        else:
            try:
                result = PEDoc.create_and_get_by_dict(doc_id, doc_type,
                        doc_values)
            except InternalServerError:
                return Response(status=500)

        return render_escaped_json_response(result)
コード例 #7
0
ファイル: unitTest.py プロジェクト: toomoresuch/pysonengine
    def _assert_delete(self, response, docId):

        # status code & データの削除を確認

        self.assertEqual(response.status_code, 200)
        self.assertEqual(PEDoc.get_by_key_name(docId), None)