Каков наилучший подход к тестированию разрешений в приложении REST с использованием pytest? - PullRequest
1 голос
/ 14 апреля 2019

Я пытаюсь автоматизировать приложение на основе REST, используя pytest и Python 3.7.

Приложение поддерживает 3 разные роли пользователя (manager, admin, consumer), и у каждого пользователя есть ограничения в доступе к данным.

Каждая роль пользователя будет иметь разные имя пользователя и ключ API.

Например, представьте, что приложение имеет data1, data2, data3, data4 и data5.

  • вызовите API с ролью пользователя manager и его ключом API, вы получите доступ ко всем данным от data1 до data5.
  • вызов API с ролью пользователя admin и его ключом API, вы получите доступ только к data3 и data4.
  • вызовите API с ролью пользователя consumer и его ключом API, вы получите доступ только к data2.

Приложение сложное, но я пытаюсь упростить его функции.

Каков наилучший подход для проверки REST API со всеми этими тремя различными ролями пользователя или любым предложением использовать какую-то библиотеку.

1 Ответ

0 голосов
/ 14 апреля 2019

Как насчет разбивки ваших тестов по ролям:

assert has_access(consumer, data2) is True
assert has_access(consumer, [data1, data3, data4, data5]) is False

Поскольку приложение становится более сложным, следующим шагом может быть переключение с полномочий на основе ролей на действия, то есть вместо предоставления потребителям полного доступа к data2, вы можете создать разрешение read и предоставить только потребителям это разрешение на data2.

...