Skip to content

Commit

Permalink
Merge pull request #12 from MyGodIsHe/fix-verbose-on-mac
Browse files Browse the repository at this point in the history
fix verbose mode for mac
  • Loading branch information
MyGodIsHe committed Jan 8, 2022
2 parents b050c03 + 7ae62da commit 6fe7663
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 20 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@ Changelog

A list of changes between each release.

0.2.5 (2022-01-08)
^^^^^^^^^^^^^^^^^^

- Fix verbose mode for mac

0.2.4 (2022-01-08)
^^^^^^^^^^^^^^^^^^

Expand Down
45 changes: 25 additions & 20 deletions pytest_neo.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
import pytest
from _pytest.terminal import TerminalReporter

__version__ = '0.2.4'
__version__ = '0.2.5'

BLOB_SIZE = (10, 20)
BLOB_SPEED = (0.1, 0.2)
Expand Down Expand Up @@ -94,29 +94,14 @@ def __init__(self, config, file=None):
self.verbose_reporter = None

def tearup(self):
self.stdscr = curses.initscr()
self.stdscr.keypad(1)
curses.noecho()
try:
curses.cbreak()
except curses.error: # hack for tests
pass
curses.curs_set(0)
curses.start_color()
curses.use_default_colors()
try:
for i in range(0, curses.COLORS):
curses.init_pair(i, i, -1)
except curses.error: # hack for tests
pass

self.stdscr = create_stdscr()
self.COLOR_CHAIN = itertools.cycle([
curses.color_pair(10) ^ curses.A_BOLD,
curses.color_pair(2),
curses.color_pair(10),
])
if self.verbosity > 0:
self.verbose_reporter = VerboseReporter(self.stdscr, *BLOB_SPEED)
self.verbose_reporter = VerboseReporter(*BLOB_SPEED)
self.verbose_reporter.start()

def teardown(self):
Expand Down Expand Up @@ -360,9 +345,8 @@ def can_draw(self, current_time):
class VerboseReporter(multiprocessing.Process):
REFRESH_INTERVAL = 0.01

def __init__(self, stdscr, speed_min, speed_max):
def __init__(self, speed_min, speed_max):
super(VerboseReporter, self).__init__()
self.stdscr = stdscr
self.blobs = collections.defaultdict(list)
assert self.REFRESH_INTERVAL <= speed_min < speed_max
self.speed_min = speed_min
Expand All @@ -372,6 +356,7 @@ def __init__(self, stdscr, speed_min, speed_max):
self.exit = multiprocessing.Event()

def run(self):
self.stdscr = create_stdscr()
try:
while not self.exit.is_set():
if not self.queue.empty():
Expand Down Expand Up @@ -431,3 +416,23 @@ def add_nodeid(self, nodeid, color):
random.randint(*BLOB_SIZE)
)
)


def create_stdscr():
stdscr = curses.initscr()
stdscr.keypad(1)
curses.noecho()
try:
curses.cbreak()
except curses.error: # hack for tests
pass
curses.curs_set(0)
curses.start_color()
curses.use_default_colors()
try:
for i in range(0, curses.COLORS):
curses.init_pair(i, i, -1)
except curses.error: # hack for tests
pass

return stdscr

0 comments on commit 6fe7663

Please sign in to comment.