Skip to content

Commit

Permalink
Merge b5b2f67 into b92e11f
Browse files Browse the repository at this point in the history
  • Loading branch information
vvvityaaa committed Apr 8, 2022
2 parents b92e11f + b5b2f67 commit 6382da1
Show file tree
Hide file tree
Showing 9 changed files with 89 additions and 12 deletions.
12 changes: 2 additions & 10 deletions hurricane/testing/actors.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,17 +61,9 @@ def post(self):

class WebhookReceiverServer:
def make_http_receiver_app(self):
return tornado.web.Application(
[
("/webhook", WebhookTestHandler),
]
)
return tornado.web.Application([("/webhook", WebhookTestHandler)])


class K8sServer:
def make_http_receiver_app(self):
return tornado.web.Application(
[
("/k8s", K8sServerMetricsHandler),
]
)
return tornado.web.Application([("/k8s", K8sServerMetricsHandler)])
4 changes: 3 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,6 @@ docker~=4.1.0
coveralls==2.2.0
Sphinx==3.2.1
sphinx-rtd-theme==0.5.0
asgiref~=3.4.0
asgiref~=3.4.0
debugpy==1.6.0
pydevd_pycharm==221.4994.44
34 changes: 34 additions & 0 deletions tests/test_amqp_host_port.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,3 +84,37 @@ def test_vhost(self):
def test_amqp_settings(self):
out, err = self.driver.get_output(read_all=True)
self.assertIn(self.starting_amqp_message, out)

@HurricaneAMQPTest.cycle_consumer(
env={"DJANGO_SETTINGS_MODULE": "tests.testapp.settings_amqp_environs"},
args=[
"tests.testapp.consumer.MyTestHandler",
"--queue",
"test",
"--exchange",
"test",
"--no_host_port",
],
)
def test_amqp_settings_environs(self):
out, err = self.driver.get_output(read_all=True)
self.assertIn(self.starting_amqp_message, out)

@HurricaneAMQPTest.cycle_consumer(
args=[
"tests.testapp.consumer.IncorrectHandler",
"--amqp-host",
"127.0.0.1",
"--amqp-port",
"8082",
"--amqp-vhost",
"test",
],
)
def test_amqp_incorrect_handler(self):
out, err = self.driver.get_output(read_all=True)
self.assertIn(self.starting_amqp_message, out)
self.assertIn(
"The type <class 'tests.testapp.consumer.IncorrectHandler'> is not subclass of _AMQPConsumer", out
)
self.assertIn("CommandError: Cannot start the consumer due to an implementation error", out)
13 changes: 13 additions & 0 deletions tests/test_debugger.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from hurricane.testing import HurricanServerTest


class HurricanDebuggerServerTest(HurricanServerTest):

alive_route = "/alive"

@HurricanServerTest.cycle_server(args=["--debugger"])
def test_debugger(self):
res = self.probe_client.get(self.alive_route)
out, err = self.driver.get_output(read_all=True)
self.assertEqual(res.status, 200)
self.assertIn("Listening for debug clients at port 5678", out)
20 changes: 19 additions & 1 deletion tests/test_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,7 @@ def test_django_operational_error(self):
res = self.probe_client.get(self.alive_route)
out, err = self.driver.get_output(read_all=True)
self.assertEqual(res.status, 500)
self.assertIn("django database error", res.text)
self.assertIn("database error", res.text)

@HurricanServerTest.cycle_server(env={"DJANGO_SETTINGS_MODULE": "tests.testapp.settings_systemcheck_error"})
def test_django_systemcheck_error(self):
Expand Down Expand Up @@ -423,3 +423,21 @@ def test_django_media(self):
out, err = self.driver.get_output(read_all=True)
self.assertEqual(response.status_code, 200)
self.assertIn("Serving media files", out)

@HurricanServerTest.cycle_server(args=["--pycharm-host", "127.0.0.1", "--pycharm-port", "1234"])
def test_pycharm_debug_no_existing_host(self):
res = self.probe_client.get(self.alive_route)
out, err = self.driver.get_output(read_all=True)
self.assertEqual(res.status, 200)
self.assertIn("Could not connect to 127.0.0.1: 1234", out)

@HurricanServerTest.cycle_server(args=["--pycharm-host", "127.0.0.1"])
def test_pycharm_debug_no_port(self):
res = self.probe_client.get(self.alive_route)
out, err = self.driver.get_output(read_all=True)
self.assertEqual(res.status, 200)
self.assertIn(
"No '--pycharm-port' was specified. The '--pycharm-host' option can "
"only be used in combination with the '--pycharm-port' option. ",
out,
)
5 changes: 5 additions & 0 deletions tests/testapp/consumer.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,8 @@ def on_message(self, _unused_channel, basic_deliver, properties, body):
class BindTestHandler(MyTestHandler):
def get_routing_keys(self, queue_name: str) -> List[str]:
return [queue_name.rsplit(".", 1)[0]]


class IncorrectHandler:
def __init__(self):
print("Incorrect Handler")
2 changes: 2 additions & 0 deletions tests/testapp/settings_amqp.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@
AMQP_HOST = "test"
AMQP_PORT = "8020"
AMQP_VHOST = "test"
AMQP_USER = "Test"
AMQP_PASSWORD = "test"
9 changes: 9 additions & 0 deletions tests/testapp/settings_amqp_environs.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import os

from .settings import *

os.environ["AMQP_HOST"] = "test"
os.environ["AMQP_PORT"] = "8020"
os.environ["AMQP_VHOST"] = "test"
os.environ["AMQP_USER"] = "Test"
os.environ["AMQP_PASSWORD"] = "test"
2 changes: 2 additions & 0 deletions tests/testapp/settings_operational_error.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@

from .settings import *

DEBUG = False

register(utils.check_raise_operational_error, "hurricane")

0 comments on commit 6382da1

Please sign in to comment.