我正在尝试用来unittest测试我制作的SimpleXMLRPCServer的一些功能.Togethere with Mock,我现在试图断言在达到if语句时已经记录了一条特定的消息,但是我无法让它工作.我已经尝试在StackOverflow或Googling上找到我在这里找到的各种答案,但仍然没有运气.我在测试用例中进行的调用如下:
def test_listen_for_tasks(self):
el = {'release': 'default', 'component': None}
for i in range(50):
self.server._queue.put(el)
ServerThread.listen_for_tasks(self.server, 'bla', 'blabla')
with mock.patch('queue_server.logging') as mock_logging:
mock_logging.warning.assert_called_with('There are currently {}'
' items in the queue'.format(
str(len(self.server._queue.queue))))
Run Code Online (Sandbox Code Playgroud)
服务器中的功能如下:
def listen_for_tasks(self, release, component):
item = {'release': release, 'component': component}
for el in list(self._queue.queue):
if self.is_request_duplicate(el, item):
logger.debug('Already have a request'
' for this component: {}'.format(item))
return
self._queue.put(item, False)
if len(self._queue.queue) > 50:
logger.warning('There are currently {}'
' items in the queue'.format(
str(len(self._queue.queue))))
Run Code Online (Sandbox Code Playgroud)
知道为什么这不起作用吗?我是Python的单元测试的新手,并声称记录器已经完成了某些事情似乎是人们可能遇到的最大问题,所以我可能已经搞砸了代码中非常简单的东西.任何形式的帮助将不胜感激! …
有没有办法计算列中布尔值的出现次数而不必循环遍历 DataFrame?
做类似的事情
df[df["boolean_column"]==False]["boolean_column"].sum()
Run Code Online (Sandbox Code Playgroud)
将不起作用,因为 False 的值为 0,因此零之和将始终返回 0。
显然,您可以通过遍历列并检查来计算出现次数,但我想知道是否有一种pythonic 方法可以做到这一点。
您将如何解决背包的这种变体?
您有 n 个对象 (x1,...xn),每个对象都有成本 ci 和值 vi (1<=i<=n) 以及一个附加约束 X,它是所选项目值的下限。找到 x1,...,xn 的子集,使值至少为 X 的项目的成本最小化。
我试图通过动态编程来解决这个问题,我想到的是将常用的表修改为 K[n,c,X] ,其中 X 是我需要达到的最小值,但这似乎对我无济于事。有什么好主意吗?
我想知道是否有一种方法可以检查对象是哪个类的实例的 if 语句。我需要这样的东西:
if(object.getClass().equals("class Circle")) return object.radius;
Run Code Online (Sandbox Code Playgroud)
这在Java中可能吗?
在我的代码中,我目前正在使用@login_required装饰器.据我所知(并且可以在URL中看到),这会将我的登录视图传递给保存用户所在的原始页面的下一个参数.在检查用户的凭据后,我正在尝试将其重定向到原始页面,但我无法弄清楚如何执行此操作.我敢肯定这一定非常简单,但我已经坚持了很长一段时间而且在扔掉键盘之前我不得不寻求帮助.我的观看代码如下:
from django.contrib.auth import login as auth_login, authenticate
def login(request):
form_class = LoginForm
if request.method == 'POST':
form = form_class(data=request.POST)
if form.is_valid():
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
auth_login(request, user)
return redirect(?????????)
else:
#Error message
return render(request, 'login.html', {'form':form_class})
Run Code Online (Sandbox Code Playgroud) python django django-forms django-authentication django-login
python ×2
algorithm ×1
boolean ×1
class ×1
counter ×1
django ×1
django-forms ×1
django-login ×1
if-statement ×1
java ×1
logging ×1
mocking ×1
pandas ×1
python-2.7 ×1
series ×1
unit-testing ×1