小编Ell*_*bal的帖子

测试瓶sql炼金术

我在Flask上有一个工作的Web应用程序与SqlAlchemy用于审核新闻,它有一些api方法来处理审核请求,例如批准,拒绝当前选择的新闻,列出它们等等.我想为这些方法编写单元测试,以及我让它们工作,但我不明白,如何在一个数据库会话中实现从测试用例执行的所有请求,以便我可以删除对数据库的所有更改.或者是否有其他更清洁或正确的方法来做到这一点?我发现可能我需要的只是SqlAlchemy中的"scoped_session",但实现它的所有工作都失败了.如果这是正确的方法,请告诉我在哪里使用这行代码(在设置中,或在测试用例set_up方法中).

from sqlalchemy.orm import scoped_session
from sqlalchemy.orm import sessionmaker
session_factory = sessionmaker()
Session = scoped_session(session_factory) 
Run Code Online (Sandbox Code Playgroud)

python testing session sqlalchemy flask

23
推荐指数
3
解决办法
2万
查看次数

Graphite显示按时间过滤的前10个指标

我是Graphite的新手,无法理解如何做到这一点:

我有大量的时间指标(芹菜指标)格式 stats.timers.*.median

我想表明:

  1. 平均值高于X的前N个指标
  2. 使用指标名称在一个图表上显示它们

现在我有,averageAbove(stats.timers.*.median,50)但它显示没有名字的图形,并且呈现奇怪和不良规模.请帮忙!:)

celery graphite

7
推荐指数
1
解决办法
2178
查看次数

对于Celery任务中的每个查询,Python cassandra-driver OperationTimeOut

我对每个插入查询(小查询)都有一个问题,它在异步中在芹菜任务中执行.在同步模式下,当我插入所有做得很好,但当它在apply_async()执行时我得到这个:

OperationTimedOut('errors=errors=errors={}, last_host=***.***.*.***, last_host=None, last_host=None',)
Run Code Online (Sandbox Code Playgroud)

追溯:

Traceback (most recent call last):
  File "/var/nfs_www/***/env_v0/local/lib/python2.7/site-packages/celery/app/trace.py", line 240, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/var/nfs_www/***/env_v0/local/lib/python2.7/site-packages/celery/app/trace.py", line 437, in __protected_call__
    return self.run(*args, **kwargs)
  File "/var/nfs_www/***/www_v1/app/mods/news_feed/tasks.py", line 26, in send_new_comment_reply_notifications
    send_new_comment_reply_notifications_method(comment_id)
  File "/var/nfs_www/***www_v1/app/mods/news_feed/methods.py", line 83, in send_new_comment_reply_notifications
    comment_type='comment_reply'
  File "/var/nfs_www/***/www_v1/app/mods/news_feed/models/storage.py", line 129, in add
    CommentsFeed(**kwargs).save()
  File "/var/nfs_www/***/env_v0/local/lib/python2.7/site-packages/cqlengine/models.py", line 531, in save
    consistency=self.__consistency__).save()
  File "/var/nfs_www/***/env_v0/local/lib/python2.7/site-packages/cqlengine/query.py", line 907, in save
    self._execute(insert)
  File "/var/nfs_www/***/env_v0/local/lib/python2.7/site-packages/cqlengine/query.py", line 786, in _execute
    tmp = execute(q, consistency_level=self._consistency)
  File "/var/nfs_www/***/env_v0/local/lib/python2.7/site-packages/cqlengine/connection.py", line …
Run Code Online (Sandbox Code Playgroud)

python cassandra celery cqlengine

7
推荐指数
1
解决办法
3026
查看次数

ZeroMQ,如何连接外部tcp套接字?

您能告诉我如何使用一些通用套接字在不同服务器上的两个程序之间发送消息ZeroMQ吗?所有本地套接字程序都有效,但我不明白它们是如何传播到不同的地方的.因为攀爬错误:

Traceback (most recent call last):
  File "/Users/*****/Projects/*****/workers/internal_links_parser.py", line 20, in <module>
    socket.bind("tcp://***.***.***.***:5000")
  File "socket.pyx", line 447, in zmq.core.socket.Socket.bind (zmq/core/socket.c:4312)
zmq.core.error.ZMQError: Can't assign requested address
Run Code Online (Sandbox Code Playgroud)

请解释,如果不难给出一个例子.谢谢!

distributed zeromq pyzmq

6
推荐指数
1
解决办法
6851
查看次数

Sublime Text 3 增量选择

我想知道 Sublime 中是否有模拟命令到 Pycharms Cmd(Ctrl)+W?

这是她在 Pycharm 中所做的:

  • 按 Ctrl+W 选择插入符号当前所在的单词。
  • 连续按 Ctrl+W 将选择扩展到下一个包含节点(例如,表达式、配对标记、整个条件块、方法主体、类、一组可变参数参数等)

在扩展选择时,请记住以下几点:

  • 在纯文本或注释中连续按 Ctrl+W 将选择首先扩展到当前句子,然后扩展到当前段落。
  • 在列表、字典或参数或参数列表中连续按 Ctrl+W,选择列表的一个元素,然后是右或左逗号和相邻的空格(如果有),然后是不带括号的列表内容,最后是圆括号。
  • 按 Ctrl+Shift+W 以相反的顺序缩小选择范围(从最外面的容器到插入符号当前所在的单词)。提示

如果在编辑器上启用了使用“CamelHumps”字样,则选择根据大小写扩展或缩小。智能钥匙设置页面。

如果要根据大小写进行选择,请使用双击,确保在编辑器设置页面上选择了 Honor CamelHumps words... 选项。

sublimetext sublimetext2 sublimetext3

5
推荐指数
2
解决办法
1185
查看次数

django-rest-framework:在ViewSet更新方法中添加其他权限

我有以下代码:

class UsersViewSet(viewsets.ModelViewSet):
    model = Users
    permission_classes = (IsAuthenticated,)

    def update(self, request, *args, **kwargs):
        return super(UsersViewSet, self).update(request, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

问题是:

  • 如何仅为更新方法添加其他权限?(需要获得isAuthenticated + Permission)
  • 仅为更新方法覆盖权限?(只需要获得没有isAuthenticated的Permission)viewset中的其他方法应该具有IsAuthenticated权限

我可以用装饰器制作吗?还是其他什么?

想得到类似的东西:

@permission_classes((IsAuthenticated, AdditionalPermission ))
def update:
    pass
Run Code Online (Sandbox Code Playgroud)

但是,如果我编写此代码,则不会通过请求检查第二个权限

python django django-rest-framework

4
推荐指数
2
解决办法
1万
查看次数