File: test_finger.py

package info (click to toggle)
bash-completion 1%3A2.11-6
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 6,560 kB
  • sloc: python: 8,228; makefile: 1,766; sh: 275; perl: 85; xml: 29; ansic: 7; ruby: 2
file content (33 lines) | stat: -rw-r--r-- 1,169 bytes parent folder | download | duplicates (2)
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
import pytest

from conftest import assert_complete, partialize


class TestFinger:
    @pytest.fixture(scope="class")
    def users_at(self, bash, output_sort_uniq):
        return output_sort_uniq("compgen -u -S @")

    @pytest.mark.complete("finger ")
    def test_1(self, bash, completion, users_at):
        assert completion == users_at

    @pytest.mark.complete("finger r")
    def test_2(self, bash, completion, users_at):
        if not any(x.startswith("r") for x in users_at):
            pytest.skip("No users starting with r")
        assert completion
        idx = 1 if len(completion) == 1 else 0
        assert completion == sorted(
            x[idx:] for x in users_at if x.startswith("r")
        )
        assert not completion.endswith(" ")

    def test_partial_hostname(self, bash, known_hosts):
        first_char, partial_hosts = partialize(bash, known_hosts)
        user = "test"
        completion = assert_complete(bash, "finger %s@%s" % (user, first_char))
        if len(completion) == 1:
            assert completion == partial_hosts[0][1:]
        else:
            assert completion == ["%s@%s" % (user, x) for x in partial_hosts]