title: Testing: TypeError: expected str, bytes or os.PathLike object, not NoneType
body: <p>I'm testing user's creation but the test haven't reach the failed test because of the error given <code>TypeError: expected str, bytes or os.PathLike object, not NoneType</code>.</p>
  <p>I have the migrations using <code>pass</code> on using the AbstractUser giving the following on the <code>migrations/0001initial.py</code> file:</p>
  <pre><code># Generated by Django 3.1.4 on 2021-07-12 15:00
  
  import django.contrib.auth.models
  import django.contrib.auth.validators
  from django.db import migrations, models
  import django.utils.timezone
  
  
  class Migration(migrations.Migration):
  
      initial = True
  
      dependencies = [
          ('auth', '0012_alter_user_first_name_max_length'),
      ]
  
      operations = [
          migrations.CreateModel(
              name='User',
              fields=[
                  ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                  ('password', models.CharField(max_length=128, verbose_name='password')),
                  ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
                  ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
                  ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')),
                  ('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')),
                  ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')),
                  ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')),
                  ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
                  ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
                  ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
                  ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')),
                  ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')),
              ],
              options={
                  'verbose_name': 'user',
                  'verbose_name_plural': 'users',
                  'abstract': False,
              },
              managers=[
                  ('objects', django.contrib.auth.models.UserManager()),
              ],
          ),
      ]
  </code></pre>
  <p>The test case I'm using is the following:</p>
  <pre><code>from django.contrib.auth import get_user_model
  from rest_framework import status
  from rest_framework.reverse import reverse
  from rest_framework.test import APITestCase
  
  PASSWORD = 'pAssw0rd!'
  
  
  class AuthenticationTest(APITestCase):
      def test_user_can_sign_up(self):
          response = self.client.post(reverse('sign_up'), data={
              'username': 'user@example.com',
              'first_name': 'Test',
              'last_name': 'User',
              'password1': PASSWORD,
              'password2': PASSWORD,
          })
          user = get_user_model().objects.last()
          self.assertEqual(status.HTTP_201_CREATED, response.status_code)
          self.assertEqual(response.data['id'], user.id)
          self.assertEqual(response.data['username'], user.username)
          self.assertEqual(response.data['first_name'], user.first_name)
          self.assertEqual(response.data['last_name'], user.last_name)
  </code></pre>
  <p>So when I run <code>python manage.py test trips.tests</code>, I'm getting the this traceback error:</p>
  <pre><code>Traceback (most recent call last):
    File &quot;/Users/roddelaporte/Documents/code/uber/server/manage.py&quot;, line 22, in &lt;module&gt;
      main()
    File &quot;/Users/roddelaporte/Documents/code/uber/server/manage.py&quot;, line 18, in main
      execute_from_command_line(sys.argv)
    File &quot;/Users/roddelaporte/Documents/code/uber/env/lib/python3.9/site-packages/django/core/management/__init__.py&quot;, line 401, in execute_from_command_line
      utility.execute()
    File &quot;/Users/roddelaporte/Documents/code/uber/env/lib/python3.9/site-packages/django/core/management/__init__.py&quot;, line 395, in execute
      self.fetch_command(subcommand).run_from_argv(self.argv)
    File &quot;/Users/roddelaporte/Documents/code/uber/env/lib/python3.9/site-packages/django/core/management/commands/test.py&quot;, line 23, in run_from_argv
      super().run_from_argv(argv)
    File &quot;/Users/roddelaporte/Documents/code/uber/env/lib/python3.9/site-packages/django/core/management/base.py&quot;, line 330, in run_from_argv
      self.execute(*args, **cmd_options)
    File &quot;/Users/roddelaporte/Documents/code/uber/env/lib/python3.9/site-packages/django/core/management/base.py&quot;, line 371, in execute
      output = self.handle(*args, **options)
    File &quot;/Users/roddelaporte/Documents/code/uber/env/lib/python3.9/site-packages/django/core/management/commands/test.py&quot;, line 53, in handle
      failures = test_runner.run_tests(test_labels)
    File &quot;/Users/roddelaporte/Documents/code/uber/env/lib/python3.9/site-packages/django/test/runner.py&quot;, line 693, in run_tests
      suite = self.build_suite(test_labels, extra_tests)
    File &quot;/Users/roddelaporte/Documents/code/uber/env/lib/python3.9/site-packages/django/test/runner.py&quot;, line 579, in build_suite
      tests = self.test_loader.discover(start_dir=label, **kwargs)
    File &quot;/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/unittest/loader.py&quot;, line 306, in discover
      os.path.dirname((the_module.__file__)))
    File &quot;/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/posixpath.py&quot;, line 152, in dirname
      p = os.fspath(p)
  TypeError: expected str, bytes or os.PathLike object, not NoneType
  </code></pre>
  <p>Any idea why is it throwing this NoneType??</p>
  <p>EDIT: This is the file tree</p>
  <pre><code>server
  |-- manage.py
  |-- trips
  |   |-- __init__.py
  |   |-- __pycache__
  |   |   |-- __init__.cpython-39.pyc
  |   |   |-- admin.cpython-39.pyc
  |   |   `-- models.cpython-39.pyc
  |   |-- admin.py
  |   |-- apps.py
  |   |-- migrations
  |   |   |-- 0001_initial.py
  |   |   |-- __init__.py
  |   |   `-- __pycache__
  |   |       |-- 0001_initial.cpython-39.pyc
  |   |       `-- __init__.cpython-39.pyc
  |   |-- models.py
  |   |-- tests
  |   |   `-- test_http.py
  |   `-- views.py
  `-- uber
      |-- __init__.py
      |-- __pycache__
      |   |-- __init__.cpython-39.pyc
      |   |-- routing.cpython-39.pyc
      |   |-- settings.cpython-39.pyc
      |   |-- urls.cpython-39.pyc
      |   `-- wsgi.cpython-39.pyc
      |-- asgi.py
      |-- routing.py
      |-- settings.py
      |-- urls.py
      `-- wsgi.py
  </code></pre>
  <p>EDIT II:
  I was missing the <code>__init__py</code> file inside the <code>tests</code> directory. But I'm still getting the same error with a different traceback:</p>
  <pre><code>Traceback (most recent call last):
    File &quot;/Users/roddelaporte/Documents/code/uber/server/manage.py&quot;, line 22, in &lt;module&gt;
      main()
    File &quot;/Users/roddelaporte/Documents/code/uber/server/manage.py&quot;, line 18, in main
      execute_from_command_line(sys.argv)
    File &quot;/Users/roddelaporte/Documents/code/uber/env/lib/python3.9/site-packages/django/core/management/__init__.py&quot;, line 401, in execute_from_command_line
      utility.execute()
    File &quot;/Users/roddelaporte/Documents/code/uber/env/lib/python3.9/site-packages/django/core/management/__init__.py&quot;, line 395, in execute
      self.fetch_command(subcommand).run_from_argv(self.argv)
    File &quot;/Users/roddelaporte/Documents/code/uber/env/lib/python3.9/site-packages/django/core/management/commands/test.py&quot;, line 23, in run_from_argv
      super().run_from_argv(argv)
    File &quot;/Users/roddelaporte/Documents/code/uber/env/lib/python3.9/site-packages/django/core/management/base.py&quot;, line 330, in run_from_argv
      self.execute(*args, **cmd_options)
    File &quot;/Users/roddelaporte/Documents/code/uber/env/lib/python3.9/site-packages/django/core/management/base.py&quot;, line 371, in execute
      output = self.handle(*args, **options)
    File &quot;/Users/roddelaporte/Documents/code/uber/env/lib/python3.9/site-packages/django/core/management/commands/test.py&quot;, line 53, in handle
      failures = test_runner.run_tests(test_labels)
    File &quot;/Users/roddelaporte/Documents/code/uber/env/lib/python3.9/site-packages/django/test/runner.py&quot;, line 695, in run_tests
      old_config = self.setup_databases(aliases=databases)
    File &quot;/Users/roddelaporte/Documents/code/uber/env/lib/python3.9/site-packages/django/test/runner.py&quot;, line 614, in setup_databases
      return _setup_databases(
    File &quot;/Users/roddelaporte/Documents/code/uber/env/lib/python3.9/site-packages/django/test/utils.py&quot;, line 157, in setup_databases
      test_databases, mirrored_aliases = get_unique_databases_and_mirrors(aliases)
    File &quot;/Users/roddelaporte/Documents/code/uber/env/lib/python3.9/site-packages/django/test/utils.py&quot;, line 258, in get_unique_databases_and_mirrors
      default_sig = connections[DEFAULT_DB_ALIAS].creation.test_db_signature()
    File &quot;/Users/roddelaporte/Documents/code/uber/env/lib/python3.9/site-packages/django/db/backends/base/creation.py&quot;, line 313, in test_db_signature
      self._get_test_db_name(),
    File &quot;/Users/roddelaporte/Documents/code/uber/env/lib/python3.9/site-packages/django/db/backends/base/creation.py&quot;, line 171, in _get_test_db_name
      return TEST_DATABASE_PREFIX + self.connection.settings_dict['NAME']
  TypeError: can only concatenate str (not &quot;NoneType&quot;) to str
  </code></pre>