小编Fea*_*ure的帖子

Python模拟具有不同结果的多个调用

我希望能够对特定属性函数进行多次调用,为每次连续调用返回不同的结果.

在下面的例子中,我想在第一次调用时增加返回5,然后在第二次调用时返回10.

例如:

import mock

class A:
    def __init__(self):
        self.size = 0
    def increment(self, amount):
        self.size += amount
        return amount

@mock.patch("A.increment")
def test_method(self, mock_increment):
    def diff_inc(*args):
        def next_inc(*args):
            #I don't know what belongs in __some_obj__
            some_obj.side_effect = next_inc
            return 10
        return 5

    mock_increment.side_effect = diff_inc
Run Code Online (Sandbox Code Playgroud)

下面的页面几乎包含了我需要的所有内容,除了它假定调用者是一个名为"mock"的对象,但这不能被假设.

http://mock.readthedocs.org/en/latest/examples.html#multiple-calls-with-different-effects

python mocking

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

如何使用jQuery创建AJAX HTTPS GET请求

如何使用jQuery显式发出AJAX HTTPS GET请求?我正在尝试执行以下操作.在https页面上,我有一行代码$.get("/resource"),但是我收到以下错误

XMLHttpRequest cannot load http://www.site.com/resource. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://www.site.com' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)

如果相对资源来自https页面,为什么AJAX调用尝试使用HTTP协议访问页面?如果$ .get(url)方法默认执行此操作,如何使用jQuery执行显式HTTPS GET请求?在http://forum.jquery.com/topic/jquery-get-ajax-call-on-http-page-to-https-on-same-domain上遇到类似问题的另一个人无法解决此问题.

jQuery版本是1.7.2

ajax https jquery get

20
推荐指数
2
解决办法
7万
查看次数

使用Python知道何时从FTP源完全接收文件

我正在使用Python开发一个执行以下操作的应用程序:

  • 监视特定目录并监视要传输给它的文件.文件完成传输后,在文件上运行一些外部程序.

我开发此应用程序的主要问题是知道文件何时完成传输.据我所知,该文件将通过SFTP传输到特定目录.Python如何知道文件何时完成传输?我知道我可以使用方法st_size返回的对象的属性os.stat(fileName).我需要使用更多工具来实现这些目标吗?

python ftp

5
推荐指数
1
解决办法
4194
查看次数

使用绑定变量时SQL注入是如何实现的?

使用绑定变量时,如何进行SQL注入?

我的DBA说使用绑定变量并不能完全保护SQL注入,但我无法弄清楚这是怎么回事,因为绑定变量尤其是字符串通常会强制注入的SQL成为WHERE子句中的字符串.

例:

SELECT CUST_ID  
FROM CUST.CUSTOMER 
WHERE FIRST_NAME=:FNAME;
Run Code Online (Sandbox Code Playgroud)

如果FNAME="SELECT FNMAME WHERE CUST_ID=10040",数据库将运行以下查询

SELECT CUST_ID 
FROM CUST.CUSTOMER 
WHERE FIRST_NAME="SELECT FNMAME WHERE CUST_ID=10040";
Run Code Online (Sandbox Code Playgroud)

这将返回0行.

我在互联网上搜索了这个问题甚至是这个网站的答案,但我找不到它.

再次感谢.

sql oracle sql-injection

5
推荐指数
3
解决办法
3545
查看次数

我们如何确保 Mock.call_args_list 中的调用包含在调用 Mock 对象时具有相同状态的参数的调用?

from mock import Mock
j = []
u = Mock()
u(j)
# At this point u.call_args_list == [call([])]
print u.call_args_list
j.append(100)
# At this point u.call_args_list == [call([100])], but I expect it to be [call([])], since it was never called when j had a value of 100 in it
print u.call_args_list
Run Code Online (Sandbox Code Playgroud)

我的问题是如何确保调用u.call_args_list包含在调用模拟时而不是在检查模拟参数时所有对象的状态?

我目前正在使用mock==1.0.1

python unit-testing mocking

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

标签 统计

python ×3

mocking ×2

ajax ×1

ftp ×1

get ×1

https ×1

jquery ×1

oracle ×1

sql ×1

sql-injection ×1

unit-testing ×1