I can't seem to figure out why my unit test is failing for the following

Traceback (most recent call last):
  File "/app/core/tests/test_admin.py", line 26, in test_users_listed
    self.assertContains(res, self.user.name)
AttributeError: 'AdminSiteTests' object has no attribute 'user'

test_admin.py

from django.test import TestCase, Client
from django.contrib.auth import get_user_model
from django.urls import reverse


class AdminSiteTests(TestCase):

  def setup(self):
    self.client = Client()
    self.admin_user = get_user_model().objects.create_superuser(
      email='admin@test.com',
      password='test123'
    )
    self.client.force_login(self.admin_user)
    self.user = get_user_model().objects.create_user(
      email='test@test.com',
      password='test123',
      name='test name'
    )

  def test_users_listed(self):
    """Test that users are listed on user page"""
    url = reverse('admin:core_user_changelist')
    res = self.client.get(url)

    self.assertContains(res, self.user.name)

self.assertContains(res, self.user.email)

admin.py

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin

from core import models


class UserAdmin(BaseUserAdmin):
  ordering = ['id']
  list_display = ['email', 'name']


admin.site.register(models.User, UserAdmin)

models.py

from django.db import models
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager, PermissionsMixin



class UserManager(BaseUserManager):

  def create_user(self, email, password=None, **extra_fields):
    """Creates and saves a new user"""
    if not email:
      raise ValueError('Users must have a email address')
    user = self.model(email=self.normalize_email(email), **extra_fields)
    # Must encrypt password using set_password() that comes with BaseUserManager
    user.set_password(password)
    user.save(using=self._db)

    return user

  def create_superuser(self, email, password):
    """Creates and saves new superuser"""
    user = self.create_user(email, password)
    user.is_staff = True
    user.is_superuser = True
    user.save(using=self._db)

    return user


class User(AbstractBaseUser, PermissionsMixin):
  """Custom user model that supports using email instead of username"""
  email = models.EmailField(max_length=255, unique=True)
  name = models.CharField(max_length=255)
  is_active = models.BooleanField(default=True)
  is_staff = models.BooleanField(default=False)

  objects = UserManager()

  USERNAME_FIELD = 'email'

I am creating the user in the setup function for the rest of my tests but I'm thinking maybe the setup function isn't getting called to create the user?

All other tests are passing. Including a test that checks whether a user has been created. Any help would be apperciated