They currently fail for the reason that does not seem related to powerline
(though this problem did not occur before porting tests to pexpect, so this
should be somewhat related (somewhat: PyPy fails on code `return br'\u%04x'
% ord(c)` which is no a valid Python code (`%` can no longer be used with
`bytes()` obects), the whole situation only means that before using pexpect bug
in PyPy was not hit)).
$PYTHON variable is sometimes a full path which makes everything fail. It is
also useless move since directories are destroyed after tests and running two
test.sh scripts in parallel is not supported in any case.
socat may close pipe before they succeed to write something which results in
env: write error: Broken pipe
(according to my experience leading printf’s always succeeds to write before
socat closes pipe).
MIME type names are inconsistent across different systems, so only first
component is used. For example, `file` in Travis Ubuntu detects Python scripts
as `text/x-java`, in Gentoo these are `text/x-python`.
Travis Ubuntu also uses magic file format different from the one
sys-apps/file-5.22 from Gentoo has, making it impossible to fix the issue by
just copying the files from my system.
This commit refactors `TestVim` test class in test_configuration so that
1. `test_environ_update` does not leave state (value of `powerline_config_paths`
global Vim variable) behind other tests can use.
2. `test_local_themes` does not rely on state left from `test_environ_update`,
instead using new facility for providing needed value of
`Powerline.get_config_paths` call. This facility will be used later in BAR
tests.
Ref #1256
Reasoning:
1. vt* TERMs (used to be vt100 here) make tmux-1.9 use different and identical
colors for inactive windows. This is not like tmux-1.6: foreground color is
different from separator color and equal to (0, 102, 153) for some reason
(separator has correct color). tmux-1.8 is fine, so are older versions
(though tmux-1.6 and tmux-1.7 do not have highlighting for previously active
window) and my system tmux-1.9a.
2. screen, xterm and some other non-256color terminals both have the same issue
and make libvterm emit complains like `Unhandled CSI SGR 3231`.
3. screen-256color, xterm-256color and other -256color terminals make libvterm
emit complains about unhandled escapes to stderr.
4. `st-256color` does not have any of the above problems, but it may be not
present on the target system because it is installed with x11-terms/st and
not with sys-libs/ncurses.
For the given reasons decision was made: to fix tmux-1.9 tests and not make
libvterm emit any data to stderr st-256color $TERM should be used, up until
libvterm has its own terminfo database entry (if it ever will). To make sure
that relevant terminfo entry is present on the target system it should be
distributed with powerline test package. To make distribution not require
modifying anything outside of powerline test directory TERMINFO variable is set.
If somebody needs to readd it he should make better code, specifically:
- Functions and variables necessary for supporting Control-P need to be defined
in a separate initialiazation function that is only called if Control-P was
found.
- Segments that show different information must be defined as separate segments
that may be put into configuration file.
- Segment functions must not know side they are on.
- Segment functions must not emit `priority`, it must go to configuration file.
- Segment functions must have proper documentation.
- Segment functions must not emit `width` and `align` keys.
- String `Loading...` or the equivalent must be overridable from configuration,
same for other interface strings (e.g. what is shown when `regex` is true).
- Segment functions must have names that make it clear what they emit.
Closes#1244
If pyuv watcher is installed then powerline.lib.vcs tests do not pass because
pyuv is missing notify events and INotify watcher is not available.
Ref #1041