我试过了
from mock import Mock
import __builtin__
__builtin__.print = Mock()
Run Code Online (Sandbox Code Playgroud)
但这会引发语法错误.我也试过修补它
@patch('__builtin__.print')
def test_something_that_performs_lots_of_prints(self, mock_print):
    # assert stuff
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
如果我有一个带有userId的散列键和productId的范围键的表,那么只有在使用boto3的dynamodb绑定不存在的情况下,如何才能将该项放入该表中?
对put_item的正常调用如下所示
table.put_item(Item={'userId': 1, 'productId': 2})
Run Code Online (Sandbox Code Playgroud)
我使用ConditionExpression的调用如下所示:
table.put_item(
    Item={'userId': 1, 'productId': 2}, 
    ConditionExpression='userId <> :uid AND productId <> :pid', 
    ExpressionAttributeValues={':uid': 1, ':pid': 3}
)
Run Code Online (Sandbox Code Playgroud)
但是每次都会引发ConditionalCheckFailedException.项目是否存在具有相同productId的项目.
我开始为网站应用程序开发测试,但我遇到了一些问题.
我正在使用Node.js,webdriver,chromedriver和selenium rc.
问题是:1.如何制作屏幕截图并将其保存在与脚本相同的文件夹中.2.有没有办法保存测试用例的测试日志?例如,如果检查页面上的元素但找不到它,我该如何输出?
所以,
我正在使用AWS Lambda的自动日志记录.它生成的日志流的名称如下所示:2016/05/18/[$LATEST]99577d10a8cb420cb124a90c20d5653a
我可以使用'aws logs describe-log-streams'查询可用的日志流,并获取一些包含这些名称的JSON以及其他元数据.
但是,如果我尝试这样做:
aws logs get-log-events --log-group-name /aws/lambda/categorise --log-stream-name "2016/05/18/[$LATEST]99577d10a8cb420cb124a90c20d5653a"
Run Code Online (Sandbox Code Playgroud)
我收到一个错误
A client error (ResourceNotFoundException) occurred when calling the GetLogEvents operation: The specified log stream does not exist.
Run Code Online (Sandbox Code Playgroud)
因此,如果describe log streams命令返回的日志流名称实际上不存在.它是什么?
我已经尝试了一下这个命令,删除它[$LATEST],引用它,逃避它.但没有快乐.有没有人设法使用aws cli检索他们的Lambda日志事件?
我有一个较旧的龙卷风服务器,可以处理vanilla WebSocket连接.我通过Nginx将这些连接从wss://info.mydomain.com代理到wss://mydomain.com:8080,以便绕过阻止非标准端口的客户代理.
在最近升级到Tornado 4.0后,所有连接都被拒绝了403.导致此问题的原因是什么?如何解决?
每当我在我的计算机上编译较少的文件到css(Ubuntu 13.10,AMD64)时,我得到的浮点结果与我的同事在他的机器上编译时的结果非常不同(Mac OSX 10.6).这一切都很好.浮点数学等等.数字基本相同.Blah blah.
但它使得输出的差异和提交真的很烦人.我最终忽略了数以百计:
.col-lg-offset-10 {
  margin-left: 83.33333333%;
  margin-left: 83.33333333333334%;
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能避免这个问题?
我在nginx后面的uWSGI下运行了一个烧瓶应用程序.
*1 readv() failed (13: Permission denied) while reading upstream, client: 10.0.3.1, server: , request: "GET /some/path/constants.js HTTP/1.1", upstream: "uwsgi://unix:/var/uwsgi.sock:", host: "dev.myhost.com"
Run Code Online (Sandbox Code Playgroud)
套接字上的权限是可以的(666,并设置为与nginx相同的用户),事实上,即使我以root身份运行nginx,我仍然会收到此错误.
烧瓶app/uwsgi正在发送请求.但它只是不被Nginx读取.这是在Ubuntu Utopic Unicorn上.
如果nginx进程具有对套接字的完全访问权限,那么知道哪些权限可能被拒绝?
作为一个复杂的因素,该服务器在一个安装了Ubuntu 14.04的容器中运行.这个设置过去常常工作......但我最近将主机升级到14.10 ......我完全明白这可能是导致问题的原因.但在我降级主机或升级容器之前,我想了解原因.
当我对生成此错误的工作人员运行strace时,我看到它正在进行的调用是这样的:
readv(14, 0x7fffb3d16a80, 1)            = -1 EACCES (Permission denied)
Run Code Online (Sandbox Code Playgroud)
14 似乎是这个系统调用创建的文件描述符
socket(PF_LOCAL, SOCK_STREAM, 0)        = 14
Run Code Online (Sandbox Code Playgroud)
所以它无法读取它刚刚创建的本地套接字?
我有这个观点,我想测试
def change_item(request):
    name_change = request.POST.get('name_change')
    cost_change = request.POST.get('cost_change')
    category_change = request.POST.get('category_change')
    product_id = request.POST.get('product_id')
    category_name = Category.objects.get(name = category_change)
    product = Product.objects.get(id__exact = product_id)
    product.name = name_change
    product.category = category_name
    product.price = cost_change
    product.save()
    return HttpResponse()
Run Code Online (Sandbox Code Playgroud)
我为它写了一个测试,但它不起作用(我想测试请求)
from django.test import RequestFactory
from django.test import TestCase
from views import change_item
from models import Product
from django.utils import unittest
class TestChange_item(TestCase):
    def setUp(self):
        self.factory = RequestFactory()
    def change_item_test(self):
        # Create an instance of a GET request.
        request = self.factory.get('main/views')
        # Test …Run Code Online (Sandbox Code Playgroud) 我的jenkins关于我的功能测试的失败报告充满了这样的行:
selenium.webdriver.remote.remote_connection: DEBUG: Finished Request
selenium.webdriver.remote.remote_connection: DEBUG: POST http://127.0.0.1:52932/session/60d406aa8e55ac841cf4efb4a43e63be/element {"using": "css selector", "sessionId": "60d406aa8e55ac841cf4efb4a43e63be", "value": "#Login input[name=email]"}
Run Code Online (Sandbox Code Playgroud)
我不关心它们,并且我实际上想要看到的每一行堆栈跟踪都有数百条这样的输出行.我该如何关闭它们?
到目前为止我尝试过的东西不起作用:
from selenium import webdriver
driver = webdriver.Chrome(
    service_args=['--silent'], 
    service_log_path='/tmp/throwaway.log')
Run Code Online (Sandbox Code Playgroud)
和...
from selenium import webdriver
driver = webdriver.Chrome(
    service_args=['2>/dev/null'])
Run Code Online (Sandbox Code Playgroud)
和...
from selenium import webdriver
driver = webdriver.Chrome(
    service_args=['>', '/dev/null', '2>&1'])
Run Code Online (Sandbox Code Playgroud)
所有这些都没有减少任何输出.
我有一些从json.Marshal. 如果像这样将它们记录到标准输出:
log.Println(string(b))
Run Code Online (Sandbox Code Playgroud)
它们的输出如下:
{"encoded":"%2B"}
Run Code Online (Sandbox Code Playgroud)
如果我将它们写入磁盘
fmt.Fprintf(w, string(b))
Run Code Online (Sandbox Code Playgroud)
然后 cat 文件是这样写的:
{"encoded":"%!B(MISSING)"}
Run Code Online (Sandbox Code Playgroud)
据我所知,string(b)really的输出是第一个,也是我预期的输出。我究竟做错了什么?
我有一个关于JavaScript函数的问题.
例如,请参考以下代码.
我假设'open'函数触发'success'事件函数.但是这怎么可行呢,因为'open'函数在调用'open'函数后被附加到openRequest ?
var indexedDB = window.indexedDB;
var openRequest = indexedDB.open('MyTestDB');
openRequest.onsuccess = function (response) {
    alert('sucess');
};
Run Code Online (Sandbox Code Playgroud)