def test_equvalency(self): test = '{"test": 2.2000000000000002}' res1 = json.loads(test) fin1 = json.dumps(res1) self.assertEquals(test,fin1) dt = datetime.datetime.now().replace(microsecond=0) test = {'test':dt} res2 = json.dumps(test) fin2 = json.loads(res2) self.assertEquals(test['test'],fin2['test'])
def _update(self, item, format): if format == 'json': params = self._validate(json.loads(request.body), UpdateUser, 'edit') #elif format == 'atom': # from lxml import etree # params = User.parse_xml(etree.fromstring(request.body)) elif format == 'html': params = self._validate(request.POST.mixed(), UpdateUser, 'edit') else: raise UnacceptedFormat(format) item.update_from_dict(params) item.save() return item
def _create(self, format, parent_id=None): if format == 'json': params = self._validate(json.loads(request.body), CreateUser, 'new') #elif format == 'atom': # from lxml import etree # params = User.parse_xml(etree.fromstring(request.body)) elif format == 'html': params = self._validate(request.POST.mixed(), CreateUser, 'new') else: raise UnacceptedFormat(format) item = User.from_dict(params) item.save() return item
def uniques_by_article(self): try: params = json.loads(request.body) except: abort(400, detail='400 Bad Request') start_time = datetime.strptime(params.get('start_time',zero_formatted),dtformat) end_time = datetime.strptime(params.get('end_time',datetime.utcnow().strftime(dtformat)),dtformat) hits = meta.Session.execute( sql.select([access_log_t.c.path_info, sql.func.count(access_log_t.c.remote_ip.distinct()).label('hits')]).\ where(access_log_t.c.stamp.between(start_time,end_time)).\ group_by(access_log_t.c.path_info).\ order_by(sql.text('hits DESC')) ).fetchall() response.content_type = 'application/json' return json.dumps([dict(x.items()) for x in hits])
def _update(self, item, format): if format == 'json': from columns.lib import json params = self._validate(json.loads(request.body), UpdateUpload, 'edit') #elif format == 'atom': # from lxml import etree # params = Upload.parse_xml(etree.fromstring(request.body)) elif format == 'html': params = self._validate(request.POST.mixed(), UpdateUpload, 'edit') else: raise UnacceptedFormat(format) item.update_from_dict(params) item.add_author_or_contributor(user_from_session(session)) item.save() return item
def _update(self, item, format): if format == 'json': params = json.loads(request.body) #elif format == 'atom': # from lxml import etree # params = Setting.parse_xml(etree.fromstring(request.body)) elif format == 'html': from formencode import NestedVariables params = NestedVariables.to_python(request.POST.mixed()) else: raise UnacceptedFormat(format) item.update_from_dict(params) item.save() app_globals.clear_settings() return item
def referers(self): try: params = json.loads(request.body) except: abort(400, detail='400 Bad Request') start_time = datetime.strptime(params.get('start_time',zero_formatted),dtformat) end_time = datetime.strptime(params.get('end_time',datetime.utcnow().strftime(dtformat)),dtformat) referers_dict = defaultdict(int) for row in meta.Session.execute(access_log_t.select(access_log_t.c.stamp.between(start_time,end_time))).fetchall(): try: row_url = urlparse.urlparse(row.referer_uri).host except: row_url = '' referers_dict[row_url] += 1 referers = [{'referer':x,'hits':y} for x,y in referers_dict.items()] response.content_type = 'application/json' return json.dumps(referers)
def _create(self, format, parent_id=None): if format == 'json': params = self._validate(json.loads(request.body), CreateArticle, 'new') #elif format == 'atom': # from lxml import etree # params = Article.parse_xml(etree.fromstring(request.body)) elif format == 'html': params = self._validate(request.POST.mixed(), CreateArticle, 'new') else: raise UnacceptedFormat(format) item = Article.from_dict(params, default_thumb=app_globals.settings(u'default_thumb',u'blog')) item.add_author_or_contributor(user_from_session(session)) if item.published is not None: item.atom_id = atom.get_tag_uri(url("story", permalink=str(item.permalink), qualified=True), item.published, item.title) item.save() app_globals.clear_get_cached_article_from_id() app_globals.clear_get_article_from_permalink() return item
def _update(self, item, format): if format == 'json': params = self._validate(json.loads(request.body), UpdateComment, 'edit') #elif format == 'atom': # from lxml import etree # params = Comment.parse_xml(etree.fromstring(request.body)) elif format == 'html': params = self._validate(request.POST.mixed(), UpdateComment, 'edit') else: raise UnacceptedFormat(format) already_published = item.published is not None item.update_from_dict(params) item.add_author_or_contributor(user_from_session(session)) # All comments are published. This is unnessecary #if not already_published and item.published is not None: # permalink = atom.slugify('-'.join([item.published.strftime("%Y-%m-%dT%H-%M-%S"),item.author['name']])) # story_permalink = Article.get_from_id(item.article_id).permalink # story_url = url('story',permalink=story_permalink) # item.atom_id = atom.get_tag_uri(story_url,item.published,item.author['name']) item.save() app_globals.clear_count_comments() return item
def _create(self, format, parent_id=None): if format == 'json': params = self._validate(json.loads(request.body), CreateComment, 'new') #elif format == 'atom': # from lxml import etree # params = Comment.parse_xml(etree.fromstring(request.body)) elif format == 'html': params = self._validate(request.POST.mixed(), CreateComment, 'new') else: raise UnacceptedFormat(format) params['parent'] = parent_id item = Comment.from_dict(params) item.add_author_or_contributor(user_from_session(session)) if item.published is not None: user_id = item.author['name'] or str(session['user_id']) permalink = atom.slugify('-'.join([item.published.strftime("%Y-%m-%dT%H-%M-%S"),user_id])) story_permalink = meta.Session.query(Article).get(int(parent_id)).permalink story_url = url('story',permalink=story_permalink) item.atom_id = atom.get_tag_uri(story_url,item.published,user_id) item.save() app_globals.clear_count_comments() return item
def test_loads_decimal(self): test = '{"test": 2.2000000000000002}' res = json.loads(test) self.assertEquals(res['test'],Decimal('2.2000000000000002'))
def test_loads_datetime(self): dt = datetime.datetime.now() test = '{"test": ["%s"]}'%dt.strftime('%Y-%m-%dT%H:%M:%SZ') res = json.loads(test) self.assertEquals(res['test'][0],dt.replace(microsecond=0))
def test_loads(self): fp = '{"test": 1}' res = json.loads(fp) self.assertEquals(res['test'],1)
def process_result_value(self, value, dialect): return json.loads(value) if value is not None else None