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")
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]
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', ' ')))
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
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
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 |"""))
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
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 | +----------------------+-----+------+------+----------------+""")
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)