Pytest для проверки существования полей, перечисленных в list_display
Я пишу модульные тесты и хочу узнать, можно ли сделать тест на существование всех list_display полей в интерфейсе администратора.
например, для этой модели:
class Order(models.Model):
class PaymentStatuses(models.TextChoices):
PENDING = "pending"
PAID = "paid"
REFUNDED = "refunded"
order_ref = models.CharField(max_length=128, unique=True)
payment_status = models.CharField(max_length=50, choices=PaymentStatuses.choices)
user = models.ForeignKey(
"users.User", on_delete=models.CASCADE, related_name="orders"
)
shipping_cost = models.DecimalField(max_digits=9, decimal_places=2, default=0)
delivery_datetime = models.DateTimeField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now_add=True)
@property
def total_price(self) -> Decimal:
total_price = Decimal(0)
for item in self.items.all():
total_price += item.unit_price * item.quantity
return total_price
и test_admin.py :
@pytest.mark.django_db
def test_order_admin__save_model(client):
user = UserFactory(superuser=True)
order = OrderFactory.create(user=user)
order_admin = OrderAdmin(model=Order, admin_site=AdminSite())
order_admin.save_model(obj=order, request=None, form=None, change=None)
assert order_admin.has_add_permission(order) == False
assert order_admin.has_change_permission(order) == False
assert order_admin.has_delete_permission(order) == False
Я хочу добавить поле total_price в список Заказов, отображаемых в интерфейсе администратора, и сделать для этого тест.
как использовать pytest для проверки существования поля в содержимом response = client.get('/admin/orders/order/')