Ejemplo n.º 1
0
def test_tabulate_unknown():
    """Test unknown tabulate format"""
    try:
        _gitfame.tabulate(auth_stats, stats_tot, backend='1337')
    except ValueError as e:
        if "unknown" not in str(e).lower():
            raise
    else:
        raise ValueError("Should not support unknown tabulate format")
Ejemplo n.º 2
0
def test_tabulate_enum():
    """Test --enum tabulate"""
    res = loads(
        _gitfame.tabulate(auth_stats, stats_tot, backend='json',
                          row_nums=True))
    assert res['columns'][0] == '#'
    assert [int(i[0]) for i in res['data']] == [1, 2]
Ejemplo n.º 3
0
def test_tabulate_json():
    """Test JSON tabulate"""
    res = loads(_gitfame.tabulate(auth_stats, stats_tot, backend='json'))
    assert (res == loads(
        dedent("""\
    {"total": {"files": 14, "loc": 613, "commits": 35},
    "data": [["Casper da Costa-Luis", 538, 35, 10, 87.8, 100.0, 71.4],
    ["Not Committed Yet", 75, 0, 4, 12.2, 0.0, 28.6]],
    "columns": ["Author", "loc", "coms", "fils",
    "%loc", "%coms", "%fils"]}""").replace('\n', ' ')))
Ejemplo n.º 4
0
def test_tabulate():
    """Test builtin tabulate"""
    assert (_gitfame.tabulate(auth_stats, stats_tot) == dedent("""\
    Total commits: 35
    Total files: 14
    Total loc: 613
    | Author               |   loc |   coms |   fils |  distribution   |
    |:---------------------|------:|-------:|-------:|:----------------|
    | Casper da Costa-Luis |   538 |     35 |     10 | 87.8/ 100/71.4  |
    | Not Committed Yet    |    75 |      0 |      4 | 12.2/ 0.0/28.6  |"""))

    sys.stderr.write("\rTest builtin tabulate ... ")  # `tqdm` may clear info
Ejemplo n.º 5
0
def test_tabulate_tabulate():
    """Test external tabulate"""
    try:
        assert (_gitfame.tabulate(auth_stats, stats_tot,
                                  backend='simple') == dedent("""\
      Total commits: 35
      Total files: 14
      Total loc: 613
      Author                  loc    coms    fils   distribution
      --------------------  -----  ------  ------  ---------------
      Casper da Costa-Luis    538      35      10  87.8/ 100/71.4
      Not Committed Yet        75       0       4  12.2/ 0.0/28.6"""))
    except ImportError:
        raise SkipTest
Ejemplo n.º 6
0
def test_tabulate_cost():
    """Test cost estimates"""
    assert (_gitfame.tabulate(auth_stats, stats_tot,
                              cost={"hours", "months"}) == dedent("""\
    Total commits: 35
    Total files: 14
    Total hours: 5.5
    Total loc: 613
    Total months: 1.9
    | Author               |   hrs |   mths |   loc |   coms |   fils \
|  distribution   |
    |:---------------------|------:|-------:|------:|-------:|-------:\
|:----------------|
    | Casper da Costa-Luis |     4 |      2 |   538 |     35 |     10 \
| 87.8/ 100/71.4  |
    | Not Committed Yet    |     2 |      0 |    75 |      0 |      4 \
| 12.2/ 0.0/28.6  |"""))
Ejemplo n.º 7
0
def test_tabulate_yaml():
    """Test YAML tabulate"""
    res = [
        dedent("""\
      columns:
      - Author
      - loc
      - coms
      - fils
      - '%loc'
      - '%coms'
      - '%fils'
      data:
      - - Casper da Costa-Luis
        - 538
        - 35
        - 10
        - 87.8
        - 100.0
        - 71.4
      - - Not Committed Yet
        - 75
        - 0
        - 4
        - 12.2
        - 0.0
        - 28.6
      total:
        commits: 35
        files: 14
        loc: 613"""),
        # pyyaml<5
        dedent("""\
      columns: [Author, loc, coms, fils, '%loc', '%coms', '%fils']
      data:
      - [Casper da Costa-Luis, 538, 35, 10, 87.8, 100.0, 71.4]
      - [Not Committed Yet, 75, 0, 4, 12.2, 0.0, 28.6]
      total: {commits: 35, files: 14, loc: 613}""")
    ]
    try:
        assert (_gitfame.tabulate(auth_stats, stats_tot, backend='yaml')
                in res)
    except ImportError:
        raise SkipTest
Ejemplo n.º 8
0
def test_tabulate():
    """ Test tabulate """

    auth_stats = {
        u'Not Committed Yet': {
            'files':
            set([
                'gitfame/_gitfame.py', 'gitfame/_utils.py', 'Makefile',
                'MANIFEST.in'
            ]),
            'loc':
            75,
            'commits':
            0
        },
        u'Casper da Costa-Luis': {
            'files':
            set([
                'gitfame/_utils.py', 'gitfame/__main__.py', 'setup.cfg',
                'gitfame/_gitfame.py', 'gitfame/__init__.py',
                'git-fame_completion.bash', 'Makefile', 'MANIFEST.in',
                '.gitignore', 'setup.py'
            ]),
            'loc':
            538,
            'commits':
            35
        }
    }

    stats_tot = {'files': 14, 'loc': 613, 'commits': 35}

    assert (_gitfame.tabulate(auth_stats, stats_tot) ==
            """+----------------------+-----+------+------+----------------+
| Author               | loc | coms | fils |  distribution  |
+======================+=====+======+======+================+
| Casper da Costa-Luis | 538 |   35 |   10 | 87.8/ 100/71.4 |
| Not Committed Yet    |  75 |    0 |    4 | 12.2/ 0.0/28.6 |
+----------------------+-----+------+------+----------------+""")
Ejemplo n.º 9
0
def test_tabulate_csv():
    """Test CSV tabulate"""
    csv = _gitfame.tabulate(auth_stats, stats_tot, backend='csv')
    tsv = _gitfame.tabulate(auth_stats, stats_tot, backend='tsv')
    assert (csv.replace(',', '\t') == tsv)