fix(test): seperate into multiple sub services

Signed-off-by: Rodney Osodo <socials@rodneyosodo.com>
This commit is contained in:
Rodney Osodo
2024-07-11 11:11:40 +03:00
parent 4ae74d8209
commit 112f1ecdcc
+41 -27
View File
@@ -4,62 +4,76 @@ import time
from nameko.web.handlers import http
from nameko_prometheus import PrometheusMetrics
class HTTPService:
name = "http_service"
metrics = PrometheusMetrics()
def handle_request(self, request, message):
if random.random() < 0.1:
return 404, "Not found"
if random.random() < 0.05:
return 500, "Internal server error"
if random.random() < 0.01:
time.sleep(1)
return json.dumps({"message": message})
time.sleep(random.random() * 0.01)
def handle_request(request, message):
if random.random() < 0.1:
return 404, "Not found"
if random.random() < 0.05:
return 500, "Internal server error"
if random.random() < 0.01:
time.sleep(1)
return json.dumps({"message": message})
@http("GET", "/metrics")
def expose_metrics(self, request):
return self.metrics.expose_metrics(request)
time.sleep(random.random() * 0.01)
return json.dumps({"message": message})
class BASICService:
name = "basic_service"
@http("GET", "/hello")
def say_hello(self, request):
return self.handle_request(request, "Hello!")
return handle_request(request, "Hello!")
@http("GET", "/goodbye")
def say_goodbye(self, request):
return self.handle_request(request, "Goodbye!")
return handle_request(request, "Goodbye!")
class USERSService:
name = "basic_service"
@http("GET", "/login")
def login(self, request):
return self.handle_request(request, "Logged in!")
return handle_request(request, "Logged in!")
@http("GET", "/logout")
def logout(self, request):
return self.handle_request(request, "Logged out!")
return handle_request(request, "Logged out!")
@http("GET", "/register")
def register(self, request):
return self.handle_request(request, "Registered!")
return handle_request(request, "Registered!")
@http("GET", "/users")
def users(self, request):
return self.handle_request(request, "Users!")
return handle_request(request, "Users!")
class PRODUCTSService:
name = "products_service"
@http("GET", "/products")
def products(self, request):
return self.handle_request(request, "Products!")
return handle_request(request, "Products!")
@http("GET", "/orders")
def orders(self, request):
return self.handle_request(request, "Orders!")
return handle_request(request, "Orders!")
@http("GET", "/cart")
def cart(self, request):
return self.handle_request(request, "Cart!")
return handle_request(request, "Cart!")
@http("GET", "/checkout")
def checkout(self, request):
return self.handle_request(request, "Checkout!")
return handle_request(request, "Checkout!")
class HTTPService(
BASICService,
USERSService,
PRODUCTSService,
):
name = "http_service"
metrics = PrometheusMetrics()
@http("GET", "/metrics")
def expose_metrics(self, request):
return self.metrics.expose_metrics(request)