Test process colours and running pid
This commit is contained in:
parent
ef5ce9f442
commit
cce567d30e
3 changed files with 30 additions and 4 deletions
|
@ -112,9 +112,9 @@ class Process:
|
|||
def port(self):
|
||||
proc = self.get_running_process()
|
||||
if proc:
|
||||
return proc.pid
|
||||
return proc.environ().get("PORT")
|
||||
|
||||
@property
|
||||
def color(self):
|
||||
def colour(self):
|
||||
proc_index = self.project.processes.index(self)
|
||||
return list(ansi_colors.keys())[1:][proc_index % len(ansi_colors)]
|
||||
|
|
|
@ -47,7 +47,7 @@ def status(running_only):
|
|||
pid = process.pid
|
||||
table.add_row(
|
||||
[
|
||||
click.style(process.ident, fg=process.color),
|
||||
click.style(process.ident, fg=process.colour),
|
||||
pid if pid else "",
|
||||
port if port else "",
|
||||
]
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
from click.termui import _ansi_colors as ansi_colors # type: ignore
|
||||
|
||||
from catfish.project import DuplicateProcessException, Project, parse_procfile_processes
|
||||
from tests import BaseTestCase
|
||||
from catfish.worker.server import PayloadType, send_to_server
|
||||
from tests import BaseTestCase, BaseWorkerTestCase
|
||||
|
||||
|
||||
class ProjectTestCase(BaseTestCase):
|
||||
|
@ -65,3 +68,26 @@ class ProcessTestCase(BaseTestCase):
|
|||
|
||||
def test_running_process(self):
|
||||
self.assertFalse(self.process.is_running)
|
||||
|
||||
def test_unique_colour(self):
|
||||
unique_colours = {proc.colour for proc in self.project.processes}
|
||||
self.assertEqual(len(unique_colours), len(self.project.processes))
|
||||
for colour in unique_colours:
|
||||
self.assertIn(colour, ansi_colors)
|
||||
|
||||
|
||||
class RunningProcessTestCase(BaseWorkerTestCase):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.project = Project(self.EXAMPLE_DIR)
|
||||
self.process = self.project.get_process("web")
|
||||
self.response = send_to_server(
|
||||
PayloadType.PROCESS,
|
||||
{"path": str(self.project.root), "process": str(self.process.name)},
|
||||
)
|
||||
|
||||
def test_running_process(self):
|
||||
self.assertTrue(self.process.is_running)
|
||||
|
||||
def test_pid(self):
|
||||
self.assertEqual(self.process.pid, self.response["pid"])
|
||||
|
|
Reference in a new issue