from server.client.clients.apollo_api import ApolloApiClient from server.client.clients.dsp_api import DspApiClient from server.client.clients.filtr_api import FiltrApiClient from server.client.clients.user_data_api import UserDataApiClient from server.client.clients.vendor_api import VendorApiClient CLIENTS_MODULES_LOCATION = "server.client.clients" def isInAlphabeticalOrder(client): if not client.__module__.startswith(CLIENTS_MODULES_LOCATION): return methods = list(client.__dict__) methods = [i for i in methods if not i.startswith("_") and i not in ("prepare_request_data", "send_request")] sorted_methods = sorted(methods) for i in range(len(methods)): try: assert methods[i] == sorted_methods[i] except AssertionError: raise AssertionError(f"Order is incorrect in {client.__name__} class. The order should be {sorted_methods}") for parent in client.__bases__: isInAlphabeticalOrder(parent) def test_order(): clients = [ApolloApiClient, DspApiClient, FiltrApiClient, UserDataApiClient, VendorApiClient] for client in clients: isInAlphabeticalOrder(client)