Coverage for tests/tests_api/admin/test_ads.py: 38%

26 statements  

« prev     ^ index     » next       coverage.py v7.6.2, created at 2024-10-10 03:02 +0300

1from sotrans_models.models.admin.ads import ( 

2 AdvertisingBlockDBModel, 

3 CreateAdvertisingBlockModel, 

4) 

5from sotrans_models.models.responses import GenericGetListResponse 

6 

7from ...conftest import APIDataStorage 

8from ...random_model import generate_models_json 

9from ...tests_api.auth import test_client, token 

10 

11 

12def test_ads_create(test_client): 

13 response = test_client.post( 

14 "/ads-block", json=generate_models_json(CreateAdvertisingBlockModel) 

15 ) 

16 assert response.status_code == 201 

17 APIDataStorage.ads = AdvertisingBlockDBModel(**response.json()) 

18 

19 

20def test_ads_get(test_client): 

21 response = test_client.get(f"/ads-block/{APIDataStorage.ads.id}") 

22 assert response.status_code == 200 

23 assert ( 

24 AdvertisingBlockDBModel(**response.json()).image_url 

25 == APIDataStorage.ads.image_url 

26 ) 

27 

28 

29def test_ads_update(test_client): 

30 patch_data = {"image_url": "RickRoll"} 

31 response = test_client.patch( 

32 f"/ads-block/{APIDataStorage.ads.id}", json=patch_data 

33 ) 

34 assert response.status_code == 200 

35 assert ( 

36 AdvertisingBlockDBModel(**response.json()).image_url 

37 == patch_data[AdvertisingBlockDBModel.image_url] 

38 ) 

39 

40 

41def test_get_ads_blocks(test_client): 

42 response = test_client.get("/ads-block") 

43 assert response.status_code == 200 

44 assert ( 

45 GenericGetListResponse[AdvertisingBlockDBModel]( 

46 **response.json() 

47 ).total 

48 == 1 

49 ) 

50 

51 

52def test_remove_ads_block(test_client): 

53 response = test_client.delete(f"/ads-block/{APIDataStorage.ads.id}") 

54 assert response.status_code == 204 

55 APIDataStorage.ads = None