Coverage for tests/tests_api/suggestions.py: 19%

59 statements  

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

1from endpoints.suggest import SuggestionsResponseModel 

2from sotrans_models.models.misc.client import ClientCreateModel, ClientDBModel 

3from sotrans_models.models.resources.drivers import DriverCreateModel 

4from sotrans_models.models.resources.trailers import TrailerCreateModel 

5from sotrans_models.models.resources.trucks import TruckCreateModel 

6 

7from ..random_model import generate_models_json 

8from ..tests_api.auth import test_client, token 

9from .fixtures import tmp_org 

10 

11 

12def test_trailers_suggestion(test_client): 

13 model_dump = generate_models_json(TrailerCreateModel) 

14 response = test_client.post("/trailers", json=model_dump) 

15 assert response.status_code == 201 

16 sugs = test_client.get("/suggestions/trailers") 

17 assert sugs.status_code == 200 

18 for s in sugs.json(): 

19 if SuggestionsResponseModel(**s).label.startswith( 

20 TrailerCreateModel(**model_dump).license_plate 

21 ): 

22 return 

23 assert False 

24 

25 

26def test_truck_suggestion(test_client): 

27 model_dump = generate_models_json(TruckCreateModel) 

28 response = test_client.post("/trucks", json=model_dump) 

29 assert response.status_code == 201 

30 sugs = test_client.get("/suggestions/trucks") 

31 assert sugs.status_code == 200 

32 for s in sugs.json(): 

33 if SuggestionsResponseModel(**s).label.startswith( 

34 TrailerCreateModel(**model_dump).license_plate 

35 ): 

36 return 

37 assert False 

38 

39 

40def test_driver_suggestion_model(test_client): 

41 model_dump = generate_models_json(DriverCreateModel) 

42 drived = test_client.post("/drivers", json=model_dump) 

43 assert drived.status_code == 201 

44 sugs = test_client.get("/suggestions/drivers") 

45 assert sugs.status_code == 200 

46 for d in sugs.json(): 

47 driver = DriverCreateModel(**model_dump) 

48 if SuggestionsResponseModel(**d).label.startswith( 

49 f"{driver.surname} {driver.name} " 

50 ): 

51 return 

52 assert False 

53 

54 

55def test_org_suggestion_model(test_client, tmp_org): 

56 suggestions = test_client.get("/suggestions/organizations") 

57 assert suggestions.status_code == 200 

58 for o in suggestions.json(): 

59 org = SuggestionsResponseModel(**o) 

60 if org.label.startswith(tmp_org.short_name or "Без имени"): 

61 return 

62 assert False 

63 

64 

65# @pytest.mark.order(after="tests_api/misc/clients.py::test_create_client") 

66def test_client_suggestion(test_client): 

67 model_dump = generate_models_json( 

68 ClientCreateModel, {"name": "TesteritoSug", "inn": "1234567890"} 

69 ) 

70 resp = test_client.post("/clients", json=model_dump) 

71 assert resp.status_code == 201 

72 created_client = ClientDBModel(**resp.json()) 

73 sug = test_client.get("/suggestions/clients") 

74 assert sug.status_code == 200 

75 for c in sug.json(): 

76 client = SuggestionsResponseModel(**c) 

77 if client.label.startswith(created_client.name): 

78 return 

79 assert False