コード例 #1
0
ファイル: tests.py プロジェクト: kelonye/django-ember-rest
    def test_limit(self):
        data = {
            'query': {
                'limit': [0, 1]
            }
        }
        res = self.client.post(
            self.uri, json.dumps(data), 'application/json'
        )
        self.assertEqual(res.status_code, 200)
        data = json.loads(res.content)
        # assert returns 1/3 matched posts
        self.assertEqual(len(data['posts']), 1)

        data = {
            'query': {
                'limit': [0, 2]
            }
        }
        res = self.client.post(
            self.uri, json.dumps(data), 'application/json'
        )
        self.assertEqual(res.status_code, 200)
        data = json.loads(res.content)
        # assert returns 2/3 matched posts
        self.assertEqual(len(data['posts']), 2)
コード例 #2
0
ファイル: tests.py プロジェクト: kelonye/django-ember-rest
    def test_order_by(self):
        data = {
            'query': {
                'order_by': '-title'
            }
        }
        res = self.client.post(
            self.uri, json.dumps(data), 'application/json'
        )
        self.assertEqual(res.status_code, 200)
        data = json.loads(res.content)
        posts = data['posts']
        self.assertEqual(posts[0]['title'], 'c')
        self.assertEqual(posts[1]['title'], 'b')
        self.assertEqual(posts[2]['title'], 'a')

        data = {
            'query': {
                'order_by': 'title'
            }
        }
        res = self.client.post(
            self.uri, json.dumps(data), 'application/json'
        )
        self.assertEqual(res.status_code, 200)
        data = json.loads(res.content)
        posts = data['posts']
        self.assertEqual(posts[0]['title'], 'a')
        self.assertEqual(posts[1]['title'], 'b')
        self.assertEqual(posts[2]['title'], 'c')
コード例 #3
0
 def _writeJson(self, json_rpc_response):
     assert isinstance(json_rpc_response, JsonRpcResponse)
     assert isinstance(json_rpc_response, dict)
     self.response.content_type = "application/json"
     json_string = dumps(json_rpc_response)
     callback = self.request.get("callback")
     if callback:
         self.response.out.write("%s=(%s)" % (callback, json_string))
         return
     self.response.out.write(dumps(json_rpc_response))
     return
コード例 #4
0
 def _writeJson(self, json_rpc_response):
     assert isinstance(json_rpc_response, JsonRpcResponse)
     assert isinstance(json_rpc_response, dict)
     self.response.content_type = "application/json"
     json_string = dumps(json_rpc_response)
     callback = self.request.get("callback")
     if callback:
         self.response.out.write("%s=(%s)" % (callback, json_string))
         return
     self.response.out.write(dumps(json_rpc_response))
     return
コード例 #5
0
ファイル: server.py プロジェクト: hatrix233/PythonFlaskApp
def health():
    #this is where we will parse csv and then construct a dictionary out of it
    data = csvParser.csvParse("health", "health")

    #return the dictionary(json data) in string format.
    #NOTE: it has to be in string format, browser cannot display json.
    return json.dumps(data)
コード例 #6
0
    def to_write_json(**page_dict):
        result = {}
        for attr_name in Page.attrset:
            if attr_name in page_dict:
                result[attr_name] = page_dict[attr_name]

        json_ustr = json.dumps({'page':result},ensure_ascii=False)
        return json_ustr.encode('utf-8')
コード例 #7
0
    def _write(self, json_rpc_response):
        """write JSON-RPC response as it is"""
        assert isinstance(json_rpc_response, JsonRpcResponse)
        assert isinstance(json_rpc_response, dict)

        if json_rpc_response.getRedirectTarget():
            assert isinstance(self.response, Response)
            self.redirect(json_rpc_response.getRedirectTarget())
            #debug("redirecting to %s" % json_rpc_response.getRedirectTarget())
            return

        # notification has no id
        if json_rpc_response.getId() is None:
            #debug("JSON-RPC notification")
            if not json_rpc_response.has_key("error") and not json_rpc_response.has_key("result"):
                # http://www.simple-is-better.org/json-rpc/jsonrpc20-over-http.html
                self.response.set_status(204) # No content
                self.response.content_type = "text/plain"
                return
            json_rpc_response.setError(JsonRpcError.INVALID_REQUEST,
                                       "Response for notification should have neither result nor error.")

        if json_rpc_response.has_key("error"):
            #debug("JSON RPC response with error.")
            #assert  json_rpc_response.getResult() is None
            self.response.content_type = "application/json"
            json_rpc_error_code = json_rpc_response.getErrorCode()
            http_status_code = JsonRpcDispatcher._getHttpStatusFromJsonRpcError(json_rpc_error_code)
            self.response.set_status(http_status_code)
            json_string = dumps(json_rpc_response)
            self.response.out.write(dumps(json_rpc_response))
            return

        # HTTP response in given format
        if self.request.get("format") == "tsv":
            self._writeTsv(json_rpc_response)
            return
        if self.request.get("format") == "csv":
            self._writeCsv(json_rpc_response)
            return
        if self.request.get("format") == "DataTable":
            self._writeDataTable(json_rpc_response)
            return
        self._writeJson(json_rpc_response)
コード例 #8
0
ファイル: tests.py プロジェクト: kelonye/django-ember-rest
    def test_count(self):
        data = {
            'query': 'count'
        }
        res = self.client.post(
            self.uri, json.dumps(data), 'application/json'
        )
        self.assertEqual(res.status_code, 200)
        self.assertEqual(Post.objects.count(), int(res.content))

        uri = reverse('apis:comments')
        data = {
            'query': 'count'
        }
        res = self.client.post(
            uri, json.dumps(data), 'application/json'
        )
        self.assertEqual(res.status_code, 200)
        self.assertEqual(Comment.objects.count(), int(res.content))
コード例 #9
0
ファイル: tests.py プロジェクト: kelonye/django-ember-rest
    def test_is_sql(self):
        data = {
            'query': 'SELECT * WHERE ...'
        }
        res = self.client.post(
            self.uri, json.dumps(data), 'application/json'
        )
        self.assertEqual(res.status_code, 400)

        data = {
            'query': 'WHERE user__pk'
        }
        res = self.client.post(
            self.uri, json.dumps(data), 'application/json'
        )
        self.assertEqual(res.status_code, 200)
        data = json.loads(res.content)
        # assert returns 1/3 matched posts
        self.assertEqual(len(data['posts']), 1)
コード例 #10
0
ファイル: backends.py プロジェクト: freight-trust/infraops
def error_response(code, error, error_type='error'):
    return {
        'statusCode':
        code,
        'body':
        json.dumps({
            'type': error_type,
            'error': str(error),
            'errorClass': str(type(error))
        })
    }
コード例 #11
0
ファイル: post.py プロジェクト: TakashiSasaki/odenkiapi
    def get(self):
        self.sender = GetSender(self.request)
        self.raw_data = putRawData(self.request)
        # self.data_list = putDataList(self.request)
        self.data_list = Data.storeRequest(self.request)
        self.metadata = putMetadata(self.sender, self.raw_data, self.data_list)

        assert isinstance(self.response, webapp.Response)
        self.response.headers["Content-Type"] = "text/plain"
        for key in self.data_list:
            data = db.get(key)
            if data.field == "productName":
                self.productName = data.string
            if data.field == "serialNumber":
                self.serialNumber = data.string
            if data.field == "moduleId":
                self.moduleId = data.string

                # self.response.out.write("field:" + data.field + " string:" + data.string + "\n")

        try:
            relays = Relays(self.productName, self.serialNumber, self.moduleId)
            assert isinstance(relays, Relays)
            l = []
            for k, v in relays.iteritems():
                assert isinstance(v, Relay)
                r = {
                    "relayId": v.relayId,
                    # "scheduledDateTime" : v.scheduledDateTime,
                    "scheduledEpoch": nativeToEpoch(v.scheduledDateTime),
                    "expectedState": v.expectedState,
                }
                l.append(r)

            o = {"relayStates": l}

            self.response.out.write(dumps(o))
        except AttributeError, e:
            l = map(lambda key: db.get(key), self.data_list)
            j = dumps(l)
            self.response.out.write(j)
コード例 #12
0
    def get(self):
        self.sender = GetSender(self.request)
        self.raw_data = putRawData(self.request)
        # self.data_list = putDataList(self.request)
        self.data_list = Data.storeRequest(self.request)
        self.metadata = putMetadata(self.sender, self.raw_data, self.data_list)

        assert isinstance(self.response, webapp.Response)
        self.response.headers['Content-Type'] = "text/plain"
        for key in self.data_list:
            data = db.get(key)
            if data.field == "productName":
                self.productName = data.string
            if data.field == "serialNumber":
                self.serialNumber = data.string
            if data.field == "moduleId":
                self.moduleId = data.string

                #self.response.out.write("field:" + data.field + " string:" + data.string + "\n")

        try:
            relays = Relays(self.productName, self.serialNumber, self.moduleId)
            assert isinstance(relays, Relays)
            l = []
            for k, v in relays.iteritems():
                assert isinstance(v, Relay)
                r = {
                    "relayId": v.relayId,
                    #"scheduledDateTime" : v.scheduledDateTime,
                    "scheduledEpoch": nativeToEpoch(v.scheduledDateTime),
                    "expectedState": v.expectedState
                }
                l.append(r)

            o = {"relayStates": l}

            self.response.out.write(dumps(o))
        except AttributeError, e:
            l = map(lambda key: db.get(key), self.data_list)
            j = dumps(l)
            self.response.out.write(j)
コード例 #13
0
 def get(self):
     gql = RawData.gql("ORDER BY rawDataId DESC LIMIT 5000")
     records = gql.run()
     results = []
     for record in records:
         query_dict = cgi.parse_qs(record.query)
         if query_dict.has_key("arduinoid"):
             try:
                 gen_power = query_dict["gen.power(W)"][0]
                 timestring = query_dict["time"][0]
             except: continue
             results.append([gen_power, timestring[0:4], timestring[4:6], timestring[6:8], timestring[8:10], timestring[10:12], timestring[12:14]])
             #results.append([gen_power])
     self.response.out.write(self.request.get("callback") + "(" + dumps({"timeVsWatt":results}) + ");")
コード例 #14
0
ファイル: tests.py プロジェクト: kelonye/django-ember-rest
 def test_create(self):
     data = {'post': {
         'title': 'New Book',
         'content': '',
         'user_id': '1'
     }}
     uri = reverse('apis:posts')
     res = self.client.post(uri, json.dumps(data), 'application/json')
     self.assertEqual(res.status_code, 200)
     data = json.loads(res.content)
     post = Post.objects.latest('pk')
     self.assertEqual(post.pk, data['post']['id'])
     self.assertEqual(post.title, data['post']['title'])
     self.assertEqual(post.content, data['post']['content'])
     self.assertEqual(post.user.pk, data['post']['user_id'])
コード例 #15
0
ファイル: tests.py プロジェクト: kelonye/django-ember-rest
 def test_exclude(self):
     data = {
         'query': {
             'exclude': {
                 'user__pk': 1
             }
         }
     }
     res = self.client.post(
         self.uri, json.dumps(data), 'application/json'
     )
     self.assertEqual(res.status_code, 200)
     data = json.loads(res.content)
     # assert returns 1/3 matched posts
     self.assertEqual(len(data['posts']), 1)
コード例 #16
0
ファイル: tests.py プロジェクト: kelonye/django-ember-rest
    def test_create(self):

        self.client = Client()
        self.client.login(username='******', password='******')

        data = {'post': {
            'title': 'New Book',
            'content': ' ',
            'user_id': '1'
        }}
        uri = reverse('apis:posts')
        res = self.client.post(uri, json.dumps(data), 'application/json')
        self.assertEqual(res.status_code, 403)
        posts = Post.objects.all()
        # assert no new post was created
        self.assertEqual(posts.count(), 3)
コード例 #17
0
ファイル: backends.py プロジェクト: freight-trust/infraops
def add_backend(event, context):
    try:
        params = add_backend_schema_request.validate(json.loads(event['body']))
    except json.JSONDecodeError as e:
        return error_response(400, e, error_type='parse_error')
    except SchemaError as e:
        return error_response(400, e, error_type='validation_error')

    params.update({
        'is_healthy': False,
        'when_added': datetime.utcnow().isoformat()
    })
    table = get_table()
    try:
        response = table.put_item(Item=params)
    except Exception as e:
        return error_response(500, e)
    return {'statusCode': 201, 'body': json.dumps(params)}
コード例 #18
0
 def _writeDataTable(self, jresponse):
     debug("format=DataTable")
     assert isinstance(jresponse, JsonRpcResponse)
     columns = jresponse.getColumns()
     if not columns:
         warn("Column description is not set in JSON-RPC response object.") 
         return
     assert isinstance(columns, Columns)
     rows = []
     for x in jresponse.getResult():
         assert isinstance(x, DataTableMixin)
         row = x.to_row(columns)
         debug(row)
         rows.append(row)
     data_table = {"cols": jresponse.getColumns(), "rows":rows}
     info(str(data_table))
     self.response.out.write(dumps(data_table))
     self.response.content_type = "application/javascript"
コード例 #19
0
ファイル: tests.py プロジェクト: kelonye/django-ember-rest
 def test_update(self):
     post = Post.objects.all()[0]
     data = {'post': {
         'title': 'New Book',
         'content': '',
         'user_id': '1'
     }}
     uri = reverse('apis:post', kwargs={
         'pk': post.pk
     })
     res = self.client.put(uri, json.dumps(data), 'application/json')
     self.assertEqual(res.status_code, 200)
     data = json.loads(res.content)
     post = Post.objects.get(pk=post.pk)
     self.assertEqual(post.pk, data['post']['id'])
     self.assertEqual(post.title, data['post']['title'])
     self.assertEqual(post.content, data['post']['content'])
     self.assertEqual(post.user.pk, data['post']['user_id'])
コード例 #20
0
 def _writeDataTable(self, jresponse):
     debug("format=DataTable")
     assert isinstance(jresponse, JsonRpcResponse)
     columns = jresponse.getColumns()
     if not columns:
         warn("Column description is not set in JSON-RPC response object.")
         return
     assert isinstance(columns, Columns)
     rows = []
     for x in jresponse.getResult():
         assert isinstance(x, DataTableMixin)
         row = x.to_row(columns)
         debug(row)
         rows.append(row)
     data_table = {"cols": jresponse.getColumns(), "rows": rows}
     info(str(data_table))
     self.response.out.write(dumps(data_table))
     self.response.content_type = "application/javascript"
コード例 #21
0
 def get(self):
     gql = RawData.gql("ORDER BY rawDataId DESC LIMIT 5000")
     records = gql.run()
     results = []
     for record in records:
         query_dict = cgi.parse_qs(record.query)
         if query_dict.has_key("arduinoid"):
             try:
                 gen_power = query_dict["gen.power(W)"][0]
                 timestring = query_dict["time"][0]
             except:
                 continue
             results.append([
                 gen_power, timestring[0:4], timestring[4:6],
                 timestring[6:8], timestring[8:10], timestring[10:12],
                 timestring[12:14]
             ])
             #results.append([gen_power])
     self.response.out.write(
         self.request.get("callback") + "(" +
         dumps({"timeVsWatt": results}) + ");")
コード例 #22
0
def main():
	cmd.title("IT之家最近更新")
	# cmd.size(66,36)
	try:
		soups = html.soup(html.getsoup("http://wap.ithome.com/").find_all("ul",attrs={"id": "wapindexnewlist"})).find_all("li")
		jsondata = json.data()
		jsondata = []
		for soup in soups:
			if len(soup.find_all("span",attrs={"class": "title"})) > 0:
				link = json.data()
				s = str(soup.find_all("span",attrs={"class": "title"})[0])
				link["title"] = s[s.rfind("\">")+3:s.rfind("</")]
				s = str(soup.find_all("span",attrs={"class": "date"})[0])
				link["time"] = s[s.rfind("('")+2:s.rfind("')")]
				link["link"] = "http://www.ithome.com" + soup.find_all("a")[0].attrs["href"]
				jsondata.append(link)
		print(json.dumps(jsondata).replace("	","    "))
		json.savefile(jsondata,paths.startpath() + "/Save.json")
	except Exception as e:
		print(e)
	cmd.pause("执行完成,按任意键继续...")
コード例 #23
0
 def dumps(self, obj):
     p = pack(obj)
     return dumps(p)
コード例 #24
0
 def pack(self, obj, fp):
     return fp.write(dumps(obj))
コード例 #25
0
ファイル: indexer.py プロジェクト: loocaworld/search_engine
 def write_index_file(self):
     f = open(DEFAULT_INDEX_FILE,'w')
     f.write(json.dumps(self.ihash))
コード例 #26
0
ファイル: backends.py プロジェクト: freight-trust/infraops
def list_backends(event, context):
    table = get_table()
    items = table.scan()
    return {'statusCode': 200, 'body': json.dumps(items['Items'])}