Skip to content

Commit

Permalink
Add gitaggregate-publisher tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Bjwebb committed Dec 1, 2014
1 parent 1ede3d4 commit cf32728
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 13 deletions.
9 changes: 4 additions & 5 deletions statsrunner/gitaggregate-publisher.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@
for commit in os.listdir(os.path.join(GITOUT_DIR, 'commits')):
for publisher in os.listdir(os.path.join(GITOUT_DIR, 'commits', commit, 'aggregated-publisher')):
git_out_dir = os.path.join(GITOUT_DIR,'gitaggregate-publisher-dated' if dated else 'gitaggregate-publisher', publisher)
try:
os.makedirs(git_out_dir)
except OSError:
pass
total = defaultdict(dict)
if os.path.isdir(git_out_dir):
for fname in os.listdir(git_out_dir):
Expand All @@ -35,11 +39,6 @@
else:
total[k][commit] = v

try:
os.makedirs(git_out_dir)
except OSError:
pass

for k,v in total.items():
with open(os.path.join(git_out_dir, k+'.json'), 'w') as fp:
json.dump(v, fp, sort_keys=True, indent=2, default=decimal_default)
68 changes: 60 additions & 8 deletions statsrunner/test_gitaggregate.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,49 +6,101 @@


def test_gitaggregate(tmpdir):
global statsrunner
gitout = tmpdir.join('gitout')
sys.argv = ['', '--dated']
with patch.dict('os.environ', GITOUT_DIR=gitout.strpath):
gitout.join('commits').join('AAA').join('aggregated').join('teststat.json').write('3', ensure=True)
import statsrunner.gitaggregate
execfile('statsrunner/gitaggregate.py')
assert gitout.join('gitaggregate').listdir() == [gitout.join('gitaggregate').join('teststat.json')]
assert gitout.join('gitaggregate').join('teststat.json').read() == '{\n "AAA": 3\n}'

gitout.join('commits').join('BBB').join('aggregated').join('teststat.json').write('"test"', ensure=True)
imp.reload(statsrunner.gitaggregate)
execfile('statsrunner/gitaggregate.py')
assert gitout.join('gitaggregate').listdir() == [gitout.join('gitaggregate').join('teststat.json')]
assert gitout.join('gitaggregate').join('teststat.json').read() == '{\n "AAA": 3, \n "BBB": "test"\n}'

# Ensure that existing values are maintained once they are missing from the commits directory
shutil.rmtree(gitout.join('commits').strpath)
gitout.join('commits').join('CCC').join('aggregated').join('teststat.json').write('{}', ensure=True)
imp.reload(statsrunner.gitaggregate)
execfile('statsrunner/gitaggregate.py')
assert gitout.join('gitaggregate').listdir() == [gitout.join('gitaggregate').join('teststat.json')]
assert gitout.join('gitaggregate').join('teststat.json').read() == '{\n "AAA": 3, \n "BBB": "test", \n "CCC": {}\n}'


def test_gitaggregate_dated(tmpdir):
global statsrunner
gitout = tmpdir.join('gitout')
sys.argv = ['', 'dated']
with open('gitdate.json', 'w') as fp:
fp.write('{"AAA":"1","BBB":"2","CCC":"3"}')
with patch.dict('os.environ', GITOUT_DIR=gitout.strpath):
gitout.join('commits').join('AAA').join('aggregated').join('teststat.json').write('3', ensure=True)
imp.reload(statsrunner.gitaggregate)
execfile('statsrunner/gitaggregate.py')
assert gitout.join('gitaggregate-dated').listdir() == [gitout.join('gitaggregate-dated').join('teststat.json')]
assert gitout.join('gitaggregate-dated').join('teststat.json').read() == '{\n "1": 3\n}'

gitout.join('commits').join('BBB').join('aggregated').join('teststat.json').write('"test"', ensure=True)
imp.reload(statsrunner.gitaggregate)
execfile('statsrunner/gitaggregate.py')
assert gitout.join('gitaggregate-dated').listdir() == [gitout.join('gitaggregate-dated').join('teststat.json')]
assert gitout.join('gitaggregate-dated').join('teststat.json').read() == '{\n "1": 3, \n "2": "test"\n}'

# Ensure that existing values are maintained once they are missing from the commits directory
shutil.rmtree(gitout.join('commits').strpath)
gitout.join('commits').join('CCC').join('aggregated').join('teststat.json').write('{}', ensure=True)
imp.reload(statsrunner.gitaggregate)
execfile('statsrunner/gitaggregate.py')
assert gitout.join('gitaggregate-dated').listdir() == [gitout.join('gitaggregate-dated').join('teststat.json')]
assert gitout.join('gitaggregate-dated').join('teststat.json').read() == '{\n "1": 3, \n "2": "test", \n "3": {}\n}'


def test_gitaggregate_publisher(tmpdir):
gitout = tmpdir.join('gitout')
sys.argv = ['', '--dated']
with patch.dict('os.environ', GITOUT_DIR=gitout.strpath):
gitout.join('commits').join('AAA').join('aggregated-publisher').join('testpublisher').join('activities.json').write('3', ensure=True)
execfile('statsrunner/gitaggregate-publisher.py')
pubdir = gitout.join('gitaggregate-publisher').join('testpublisher')
assert pubdir.listdir() == [pubdir.join('activities.json')]
assert pubdir.join('activities.json').read() == '{\n "AAA": 3\n}'

gitout.join('commits').join('BBB').join('aggregated-publisher').join('testpublisher').join('activities.json').write('"test"', ensure=True)
execfile('statsrunner/gitaggregate-publisher.py')
pubdir = gitout.join('gitaggregate-publisher').join('testpublisher')
assert pubdir.listdir() == [pubdir.join('activities.json')]
assert pubdir.join('activities.json').read() == '{\n "AAA": 3, \n "BBB": "test"\n}'


# Ensure that existing values are maintained once they are missing from the commits directory
shutil.rmtree(gitout.join('commits').strpath)
gitout.join('commits').join('CCC').join('aggregated-publisher').join('testpublisher').join('activities.json').write('{}', ensure=True)
execfile('statsrunner/gitaggregate-publisher.py')
pubdir = gitout.join('gitaggregate-publisher').join('testpublisher')
assert pubdir.listdir() == [pubdir.join('activities.json')]
assert pubdir.join('activities.json').read() == '{\n "AAA": 3, \n "BBB": "test", \n "CCC": {}\n}'



def test_gitaggregate_publisher_dated(tmpdir):
gitout = tmpdir.join('gitout')
sys.argv = ['', 'dated']
with open('gitdate.json', 'w') as fp:
fp.write('{"AAA":"1","BBB":"2","CCC":"3"}')
with patch.dict('os.environ', GITOUT_DIR=gitout.strpath):
gitout.join('commits').join('AAA').join('aggregated-publisher').join('testpublisher').join('activities.json').write('3', ensure=True)
execfile('statsrunner/gitaggregate-publisher.py')
pubdir = gitout.join('gitaggregate-publisher-dated').join('testpublisher')
assert pubdir.listdir() == [pubdir.join('activities.json')]
assert pubdir.join('activities.json').read() == '{\n "1": 3\n}'

gitout.join('commits').join('BBB').join('aggregated-publisher').join('testpublisher').join('activities.json').write('"test"', ensure=True)
execfile('statsrunner/gitaggregate-publisher.py')
pubdir = gitout.join('gitaggregate-publisher-dated').join('testpublisher')
assert pubdir.listdir() == [pubdir.join('activities.json')]
assert pubdir.join('activities.json').read() == '{\n "1": 3, \n "2": "test"\n}'


# Ensure that existing values are maintained once they are missing from the commits directory
shutil.rmtree(gitout.join('commits').strpath)
gitout.join('commits').join('CCC').join('aggregated-publisher').join('testpublisher').join('activities.json').write('{}', ensure=True)
execfile('statsrunner/gitaggregate-publisher.py')
pubdir = gitout.join('gitaggregate-publisher-dated').join('testpublisher')
assert pubdir.listdir() == [pubdir.join('activities.json')]
assert pubdir.join('activities.json').read() == '{\n "1": 3, \n "2": "test", \n "3": {}\n}'

0 comments on commit cf32728

Please sign in to comment.