1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
Tests scrolling in processes_rows()
-----------------------------------
>>> from blessed import Terminal
>>> from pgactivity.types import *
>>> from pgactivity.views import *
>>> term = Terminal(force_styling=None)
>>> term.width
80
>>> processes_scroll = [
... RunningProcess(
... pid=x,
... application_name="pgbench",
... database="pgbench",
... user="postgres",
... client=None,
... state="active",
... query=f"SELECT {x}",
... encoding=None,
... duration=0.0,
... xmin=1234,
... wait=False,
... query_leader_pid=x,
... is_parallel_worker=False,
... ) for x in range(0, 10)]
>>> ui = UI.make(flag=Flag.PID|Flag.DATABASE)
>>> sproc = SelectableProcesses(processes_scroll)
>>> _ = sproc.focus_next()
>>> sproc.position()
0
>>> lc = line_counter(4)
>>> processes_rows(term, ui, sproc, lc.value, lines_counter=lc)
0 pgbench active SELECT 0
1 pgbench active SELECT 1
2 pgbench active SELECT 2
3 pgbench active SELECT 3
>>> for x in range(9):
... _ = sproc.focus_next()
>>> sproc.position()
9
>>> lc = line_counter(5)
>>> processes_rows(term, ui, sproc, lc.value, lines_counter=lc)
6 pgbench active SELECT 6
7 pgbench active SELECT 7
8 pgbench active SELECT 8
9 pgbench active SELECT 9
0 pgbench active SELECT 0
>>> _ = sproc.focus_next()
>>> sproc.position()
0
>>> lc = line_counter(5)
>>> processes_rows(term, ui, sproc, lc.value, lines_counter=lc)
0 pgbench active SELECT 0
1 pgbench active SELECT 1
2 pgbench active SELECT 2
3 pgbench active SELECT 3
4 pgbench active SELECT 4
>>> for x in range(9):
... _ = sproc.focus_next()
>>> sproc.position()
9
We never put the focus on the lower 1/5th of the screen.
For 5 display lines, the focus will be on the 4th .
>>> lc = line_counter(5)
>>> processes_rows(term, ui, sproc, lc.value, lines_counter=lc)
6 pgbench active SELECT 6
7 pgbench active SELECT 7
8 pgbench active SELECT 8
9 pgbench active SELECT 9
0 pgbench active SELECT 0
For 10 display lines, it should be at 8th line.
>>> lc = line_counter(10)
>>> processes_rows(term, ui, sproc, lc.value, lines_counter=lc)
2 pgbench active SELECT 2
3 pgbench active SELECT 3
4 pgbench active SELECT 4
5 pgbench active SELECT 5
6 pgbench active SELECT 6
7 pgbench active SELECT 7
8 pgbench active SELECT 8
9 pgbench active SELECT 9
0 pgbench active SELECT 0
1 pgbench active SELECT 1
|