Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django测试在添加Wagtail对象后开始失败_Python_Django_Wagtail_Django Testing - Fatal编程技术网

Python Django测试在添加Wagtail对象后开始失败

Python Django测试在添加Wagtail对象后开始失败,python,django,wagtail,django-testing,Python,Django,Wagtail,Django Testing,我对我的Django模型使用常规Django测试,使用 ./manage.py test non_wagtail_app_name 但是突然之间(在添加了一些摇摆模型之后),我无法运行它们: Creating test database for alias 'default'... Traceback (most recent call last): File "./manage.py", line 12, in <module> execute_from_comman

我对我的Django模型使用常规Django测试,使用

./manage.py test non_wagtail_app_name
但是突然之间(在添加了一些摇摆模型之后),我无法运行它们:

Creating test database for alias 'default'...
Traceback (most recent call last):
  File "./manage.py", line 12, in <module>
    execute_from_command_line(sys.argv)
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/core/management/__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/core/management/commands/test.py", line 29, in run_from_argv
    super(Command, self).run_from_argv(argv)
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/core/management/base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/core/management/base.py", line 330, in execute
    output = self.handle(*args, **options)
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/core/management/commands/test.py", line 62, in handle
    failures = test_runner.run_tests(test_labels)
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/test/runner.py", line 601, in run_tests
    old_config = self.setup_databases()
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/test/runner.py", line 546, in setup_databases
    self.parallel, **kwargs
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/test/utils.py", line 187, in setup_databases
    serialize=connection.settings_dict.get('TEST', {}).get('SERIALIZE', True),
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/db/backends/base/creation.py", line 69, in create_test_db
    run_syncdb=True,
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/core/management/__init__.py", line 131, in call_command
    return command.execute(*args, **defaults)
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/core/management/base.py", line 330, in execute
    output = self.handle(*args, **options)
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/core/management/commands/migrate.py", line 204, in handle
    fake_initial=fake_initial,
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/db/migrations/executor.py", line 115, in migrate
    state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/db/migrations/executor.py", line 145, in _migrate_all_forwards
    state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/db/migrations/executor.py", line 244, in apply_migration
    state = migration.apply(state, schema_editor)
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/db/migrations/migration.py", line 129, in apply
    operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/db/migrations/operations/fields.py", line 88, in database_forwards
    field,
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/db/backends/base/schema.py", line 431, in add_field
    definition, params = self.column_sql(model, field, include_default=True)
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/db/backends/base/schema.py", line 171, in column_sql
    default_value = self.effective_default(field)
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/db/backends/base/schema.py", line 245, in effective_default
    default = field.get_db_prep_save(default, self.connection)
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/db/models/fields/__init__.py", line 770, in get_db_prep_save
    prepared=False)
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/db/models/fields/__init__.py", line 762, in get_db_prep_value
    value = self.get_prep_value(value)
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/wagtail/core/fields.py", line 106, in get_prep_value
    return json.dumps(self.stream_block.get_prep_value(value), cls=DjangoJSONEncoder)
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/wagtail/core/blocks/stream_block.py", line 252, in get_prep_value
    for child in value  # child is a StreamChild instance
  File "/home/fleon/development/virmyasb/lib/python3.6/site-packages/wagtail/core/blocks/stream_block.py", line 252, in <listcomp>
    for child in value  # child is a StreamChild instance
AttributeError: 'str' object has no attribute 'block'
正在为别名“default”创建测试数据库。。。
回溯(最近一次呼叫最后一次):
文件“/manage.py”,第12行,在
从命令行(sys.argv)执行命令
文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/django/core/management/_init__.py”,第364行,从命令行执行
utility.execute()
文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/django/core/management/__init__.py”,执行中第356行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/core/management/commands/test.py”,第29行,从_argv运行
超级(命令,自我)。从_argv(argv)运行_
文件“/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/core/management/base.py”,第283行,运行时从
self.execute(*args,**cmd_选项)
文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/django/core/management/base.py”,第330行,在execute中
输出=self.handle(*args,**选项)
文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/django/core/management/commands/test.py”,第62行,在handle中
失败=测试运行程序。运行测试(测试标签)
文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/django/test/runner.py”,第601行,运行测试中
old\u config=self.setup\u databases()
setup_数据库中的文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/django/test/runner.py”,第546行
self.parallel,**kwargs
setup_数据库中的文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/django/test/utils.py”,第187行
serialize=connection.settings\u dict.get('TEST',{}).get('serialize',True),
文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/django/db/backends/base/creation.py”,第69行,在create\u test\u db中
运行\u syncdb=True,
文件“/home/fleon/development/virmyasb/lib/python3.6/site-packages/django/core/management/_-init___.py”,第131行,在call_命令中
return命令。execute(*args,**默认值)
文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/django/core/management/base.py”,第330行,在execute中
输出=self.handle(*args,**选项)
文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/django/core/management/commands/migrate.py”,第204行,在handle中
假首字母=假首字母,
文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/django/db/migrations/executor.py”,第115行,在migrate中
状态=self.\u迁移\u所有\u转发(状态,计划,完整计划,假=假,假首字母=假首字母)
文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/django/db/migrations/executor.py”,第145行,全部向前迁移
state=self.apply\u迁移(state,migration,false=false,false\u initial=false\u initial)
文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/django/db/migrations/executor.py”,第244行,应用程序迁移
state=migration.apply(状态,模式编辑器)
文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/django/db/migrations/migration.py”,第129行,在apply中
操作。数据库转发(self.app\u标签、模式编辑器、旧状态、项目状态)
数据库中的文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/django/db/migrations/operations/fields.py”,第88行
领域
文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/django/db/backends/base/schema.py”,第431行,在add_字段中
定义,params=self.column\u sql(模型,字段,include\u默认值=True)
文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/django/db/backends/base/schema.py”,第171行,在sql列中
默认值=自生效默认值(字段)
文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/django/db/backends/base/schema.py”,第245行,默认有效
默认值=field.get\u db\u prep\u save(默认值,self.connection)
文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/django/db/models/fields/__________.py”,第770行,在get_db_prep_save中
准备就绪(错误)
文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/django/db/models/fields/___init__.py”,第762行,在get_db_prep_值中
value=self.get\u prep\u值(value)
文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/wagtail/core/fields.py”,第106行,在get\u prep\u值中
返回json.dumps(self.stream\u block.get\u prep\u value(value),cls=DjangoJSONEncoder)
文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/wagtail/core/blocks/stream_block.py”,第252行,在get_prep_值中
对于值中的child#child是StreamChild实例
文件“/home/fleon/development/virmyasb/lib/python3.6/site packages/wagtail/core/blocks/stream_block.py”,第252行,在
对于值中的child#child是StreamChild实例
AttributeError:“str”对象没有属性“block”
回溯似乎来自我项目的Wagtail部分(我的Wagtail模型使用StreamFields和BlockFields),因此我似乎遗漏了一些东西(为我的Wagtail对象放置夹具),但我不知道从哪里开始(我还没有设置Wagtail测试-是的,我知道,我应该)。我要测试的应用程序没有使用Wagtail中的任何内容


唯一有效的方法是pg_转储我的Postgres数据库,在生成的文件中编辑数据库名称,将其导入test_Postgres并将-k开关传递到manage.py test,因此很明显我需要预先填充Wagtail表。但是,在Django模型测试中使用fixture并不能解决问题…

这在运行迁移时失败。在堆栈跟踪中,我的最佳猜测是:

  • 这是一个添加了
    Stre的迁移