Пример #1
0
def test_sigmap_signals_get_registered(sigmap_test_cases):
    sigmap = sigmap_test_cases
    if not sigmap:
        pytest.skip("{0!r} - unsupported case".format(sigmap))

    sp = yaspin(sigmap=sigmap)
    # If test fails, the spinner may infinitely stuck ignoring
    # signals, except of SIGKILL; try-finally block ensures
    # that spinner get stopped.
    try:
        sp.start()
        for sig, sig_handler in iteritems(sigmap):
            handler = signal.getsignal(sig)
            is_partial = isinstance(handler, functools.partial)

            if callable(sig_handler) and is_partial:
                # Handler function is wrapped into ``partial`` and
                # is accesible via ``func`` attribute.
                assert sig_handler == handler.func
            else:
                # SIG_DFL and SIG_IGN cases
                assert sig_handler == handler
    finally:
        sp.stop()
Пример #2
0
examples.demo
~~~~~~~~~~~~~

Yaspin features demonstration.
"""

import random
import time

from yaspin import yaspin
from yaspin.compat import iteritems
from yaspin.constants import COLOR_MAP
from yaspin.spinners import Spinners


COLORS = (k for k, v in iteritems(COLOR_MAP) if v == "color")
HIGHLIGHTS = (k for k, v in iteritems(COLOR_MAP) if v == "on_color")


def any_spinner_you_like():
    params = [
        ("line", 0.8),
        ("dots10", 0.8),
        ("dots11", 0.8),
        ("simpleDots", 1),
        ("star", 0.5),
        ("balloon", 0.7),
        ("noise", 0.5),
        ("arc", 0.5),
        ("arrow2", 0.5),
        ("bouncingBar", 1),
Пример #3
0
Tests for spinners collection.
"""

from __future__ import absolute_import

import codecs
import json

import pytest

from yaspin.compat import iteritems
from yaspin.spinners import SPINNERS_PATH, Spinners

with codecs.open(SPINNERS_PATH, encoding='utf-8') as f:
    spinners_dict = json.load(f)

test_cases = [(name, v["frames"], v["interval"])
              for name, v in iteritems(spinners_dict)]


def test_len():
    assert len(Spinners) == len(spinners_dict)


# Entry example:
# ('balloon', [' ', '.', 'o', 'O', '@', '*', ' '], 140)
@pytest.mark.parametrize("name, frames, interval", test_cases)
def test_spinners(name, frames, interval):
    assert getattr(Spinners, name).frames == frames
    assert getattr(Spinners, name).interval == interval
Пример #4
0
        # Multiple attrs
        (["bold", "dark"], ["bold", "dark"]),
        (["bold", "dark", "reverse"], ["bold", "dark", "reverse"]),
        # Unsupported attrs
        (["Dark"], ValueError()),
        (["bold", "bar"], ValueError()),
    ],
)
def attrs_test_cases(request):
    return request.param


@pytest.fixture(
    scope="session",
    ids=color_id_func,
    params=sorted([k for k, v in iteritems(COLOR_MAP) if v == "color"]),
)
def supported_colors(request):
    return request.param


@pytest.fixture(
    scope="session",
    ids=color_id_func,
    params=sorted([k for k, v in iteritems(COLOR_MAP) if v == "on_color"]),
)
def supported_highlights(request):
    return request.param


@pytest.fixture(
Пример #5
0
        pytest.skip("{0} - unsupported case".format(repr(on_color)))

    sp = yaspin()

    if isinstance(expected, Exception):
        with pytest.raises(AttributeError):
            getattr(sp, on_color)
    else:
        getattr(sp, on_color)
        assert sp.on_color == expected
        assert sp._color_func.keywords["on_color"] == expected


# Values for ``attrs`` argument
@pytest.mark.parametrize(
    "attr", sorted([k for k, v in iteritems(COLOR_MAP) if v == "attrs"]))
def test_attrs(attr):
    sp = yaspin()
    getattr(sp, attr)
    assert sp.attrs == [attr]
    assert sp._color_func.keywords["attrs"] == [attr]


def id_func(case):
    return ", ".join(case)


@pytest.mark.parametrize(
    "attrs",
    [
        ["bold", "bold"],
Пример #6
0
        # Multiple attrs
        (["bold", "dark"], ["bold", "dark"]),
        (["bold", "dark", "reverse"], ["bold", "dark", "reverse"]),
        # Unsupported attrs
        (["Dark"], ValueError()),
        (["bold", "bar"], ValueError()),
    ],
)
def attrs_test_cases(request):
    return request.param


@pytest.fixture(
    scope="session",
    ids=color_id_func,
    params=sorted([k for k, v in iteritems(COLOR_MAP) if v == "color"]),
)
def supported_colors(request):
    return request.param


@pytest.fixture(
    scope="session",
    ids=color_id_func,
    params=sorted([k for k, v in iteritems(COLOR_MAP) if v == "on_color"]),
)
def supported_highlights(request):
    return request.param


@pytest.fixture(