fix(test): seperate into multiple sub services
Signed-off-by: Rodney Osodo <socials@rodneyosodo.com>
This commit is contained in:
+41
-27
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user