テストの実行
https://docs.djangoproject.com/ja/3.1/intro/tutorial05/#running-tests
上記のDjangoの自動テストのチュートリアルにて、以下のコマンドを実行。
実行後、下記のエラーメッセージが表示された。
- $ python manage.py test polls
- Creating test database for alias 'default'...
- Traceback (most recent call last):
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/core/management/base.py", line 328, in run_from_argv
- self.execute(*args, **cmd_options)
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/core/management/base.py", line 369, in execute
- output = self.handle(*args, **options)
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/core/management/commands/test.py", line 53, in handle
- failures = test_runner.run_tests(test_labels)
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/test/runner.py", line 684, in run_tests
- old_config = self.setup_databases(aliases=databases)
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/test/runner.py", line 604, in setup_databases
- return _setup_databases(
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/test/utils.py", line 169, in setup_databases
- connection.creation.create_test_db(
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/db/backends/base/creation.py", line 60, in create_test_db
- self.connection.close()
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
- return func(*args, **kwargs)
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py", line 261, in close
- if not self.is_in_memory_db():
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py", line 380, in is_in_memory_db
- return self.creation.is_in_memory_db(self.settings_dict['NAME'])
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/db/backends/sqlite3/creation.py", line 12, in is_in_memory_db
- return database_name == ':memory:' or 'mode=memory' in database_name
- TypeError: argument of type 'PosixPath' is not iterable
- During handling of the above exception, another exception occurred:
- Traceback (most recent call last):
- File "manage.py", line 22, in <module>
- main()
- File "manage.py", line 18, in main
- execute_from_command_line(sys.argv)
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
- utility.execute()
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/core/management/__init__.py", line 395, in execute
- self.fetch_command(subcommand).run_from_argv(self.argv)
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/core/management/commands/test.py", line 23, in run_from_argv
- super().run_from_argv(argv)
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/core/management/base.py", line 341, in run_from_argv
- connections.close_all()
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/db/utils.py", line 230, in close_all
- connection.close()
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
- return func(*args, **kwargs)
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py", line 261, in close
- if not self.is_in_memory_db():
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py", line 380, in is_in_memory_db
- return self.creation.is_in_memory_db(self.settings_dict['NAME'])
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/db/backends/sqlite3/creation.py", line 12, in is_in_memory_db
- return database_name == ':memory:' or 'mode=memory' in database_name
- TypeError: argument of type 'PosixPath' is not iterable
- MackBook-Pro-2013:mysite dev_user$
- MackBook-Pro-2013:mysite dev_user$
- MackBook-Pro-2013:mysite dev_user$ python manage.py test polls
- Creating test database for alias 'default'...
- Traceback (most recent call last):
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/core/management/base.py", line 328, in run_from_argv
- self.execute(*args, **cmd_options)
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/core/management/base.py", line 369, in execute
- output = self.handle(*args, **options)
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/core/management/commands/test.py", line 53, in handle
- failures = test_runner.run_tests(test_labels)
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/test/runner.py", line 684, in run_tests
- old_config = self.setup_databases(aliases=databases)
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/test/runner.py", line 604, in setup_databases
- return _setup_databases(
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/test/utils.py", line 169, in setup_databases
- connection.creation.create_test_db(
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/db/backends/base/creation.py", line 60, in create_test_db
- self.connection.close()
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
- return func(*args, **kwargs)
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py", line 261, in close
- if not self.is_in_memory_db():
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py", line 380, in is_in_memory_db
- return self.creation.is_in_memory_db(self.settings_dict['NAME'])
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/db/backends/sqlite3/creation.py", line 12, in is_in_memory_db
- return database_name == ':memory:' or 'mode=memory' in database_name
- TypeError: argument of type 'PosixPath' is not iterable
- During handling of the above exception, another exception occurred:
- Traceback (most recent call last):
- File "manage.py", line 22, in <module>
- main()
- File "manage.py", line 18, in main
- execute_from_command_line(sys.argv)
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
- utility.execute()
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/core/management/__init__.py", line 395, in execute
- self.fetch_command(subcommand).run_from_argv(self.argv)
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/core/management/commands/test.py", line 23, in run_from_argv
- super().run_from_argv(argv)
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/core/management/base.py", line 341, in run_from_argv
- connections.close_all()
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/db/utils.py", line 230, in close_all
- connection.close()
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
- return func(*args, **kwargs)
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py", line 261, in close
- if not self.is_in_memory_db():
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py", line 380, in is_in_memory_db
- return self.creation.is_in_memory_db(self.settings_dict['NAME'])
- File "/Users/dev_user/.pyenv/versions/3.8.3/lib/python3.8/site-packages/django/db/backends/sqlite3/creation.py", line 12, in is_in_memory_db
- return database_name == ':memory:' or 'mode=memory' in database_name
- TypeError: argument of type 'PosixPath' is not iterable
修正箇所は、「/mysite/settings.py」のDATABASES設定内。
'NAME': BASE_DIR / 'db.sqlite3',
↓
'NAME': str( BASE_DIR / 'db.sqlite3' ),
os.pathの方を使えばこのエラーは起きなさそう。
参考サイト
Fixed #29983 -- Replaced os.path with pathlib.Path. #10684
https://github.com/django/django/pull/10684
How to use pathlib.Path in Django?
https://github.com/django/django/pull/10684
Django tutorial: `python manage.py startapp polls` fails
https://forum.djangoproject.com/t/django-tutorial-python-manage-py-startapp-polls-fails/2718
0 件のコメント:
コメントを投稿