更新到新版本2016.2后,我收到了
RuntimeWarning: Parent module 'tests' not found while handling absolute import
import unittest
RuntimeWarning: Parent module 'tests' not found while handling absolute import
import datetime as dt
Run Code Online (Sandbox Code Playgroud)
'tests'是我的主应用程序包中的一个包,当我尝试在此文件夹中执行单元测试时,我收到这些警告.此问题仅在更新至2016.2后出现.除了警告,剩下的代码工作正常.
编辑:这是一个已知问题 - https://youtrack.jetbrains.com/issue/PY-20171.他们建议在PyCharm安装文件夹中替换utrunner.py.
打开新的Python控制台时如何更改默认工作目录?我在PyCharm视图中打开了多个项目,Python控制台似乎默认为任意一个.当然我可以通过修改sys.path来解决,但我想要一个明确的解决方案:)
我正在IIS上部署Flask应用程序,并使用其Windows身份验证,如果身份验证成功,该应用会将request.environ ['REMOTE_USER']设置为Windows用户名。现在,在编写测试用例时,如何伪造request.environ ['REMOTE_USER']?测试用例独立于IIS服务器运行。
我的尝试:
from flask import request
def test_insert_cash_flow_through_post(self):
"""Test that you can insert a cash flow through post."""
request.environ['REMOTE_USER'] = 'foo'
self.client.post("/index?account=main",
data=dict(settlement_date='01/01/2016',
transaction_type='Other',
certainty='Certain',
transaction_amount=1))
assert CashFlow.query.first().user == 'foo'
Run Code Online (Sandbox Code Playgroud)
我的视图中处理“ REMOTE_USER”的部分类似:
cf = CashFlow(...,
user=request.environ.get('REMOTE_USER'),
...)
db.session.add(cf)
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用命令"put -r myDirectory"将目录从本地计算机上传到Digital Ocean droplet ubuntu 14.04.最初我有"无法规范路径"问题,但我按照指示创建了一个远程"myDirectory",错误消息消失了.
但是,"put -r myDirectory"仍然不起作用 - 控制台打印"Uploading myDirectory/to/remote/path/myDirectory,Entering myDirectory /",然后没有任何反应.我是sftp的新手,但我很困惑,因为我无法在互联网上找到我的问题.
如果我在 JetBrain 的 pycharm IDE 中有分屏,我可以在一个屏幕上转到声明一个对象,并将生成的声明显示在另一个分屏上吗?这对于阅读代码非常有帮助,而且不会丢失我的位置。我确实意识到您也可以返回到之前的插入位置,但这会更好。
检索一个以上孩子的表中所有行的最佳方法是什么?我试过了:
session.query(Parent).filter(len(Parent.children)>1).all()
Run Code Online (Sandbox Code Playgroud)
但我收到错误消息“ InstrumentedAttribute类型的对象没有len()”。我已经能够使所有至少有一个孩子的父母使用:
session.query(Parent).filter(Parent.children).all()
Run Code Online (Sandbox Code Playgroud) 我的测试没有捕获带有assertRaises的psycopg2.IntegrityError.我正在使用Flask-SQLAlchemy.
def test_insert_cash_flow(self):
cf = CashFlow()
db.session.add(cf)
self.assertRaises(psycopg2.IntegrityError, db.session.commit)
Run Code Online (Sandbox Code Playgroud)
我的CashFlow SQLAlchemy模型有几个nullable = False字段.它说我的测试失败了,并且IntegrityError被打印到屏幕上,但我的assertRaises没有抓住这个.有人怀疑为什么?
我想将我的SQLAlchemy postgres JSON列的默认值设置为空字典.
from sqlalchemy.dialects.postgresql import JSON
info = Column(JSON, default='{}')
info = Column(JSON, default={})
Run Code Online (Sandbox Code Playgroud)
这些都不奏效.
python ×7
pycharm ×3
sqlalchemy ×3
flask ×2
ide ×2
assert ×1
iis ×1
import ×1
json ×1
many-to-many ×1
postgresql ×1
sftp ×1
sql ×1
ubuntu ×1
unit-testing ×1
unix ×1
wsgi ×1