def test_statsdb(self): with temporary_dir() as tmpdir: path = os.path.join(tmpdir, 'statsdb.sqlite') statsdb = StatsDB(path) statsdb.ensure_tables() statsdb.insert_stats({ 'run_info': { 'id': 'run1', 'timestamp': '1438600000', 'machine': 'ernie', 'user': '******', 'version': '9.8.7', 'buildroot': '/path/to/repo', 'outcome': 'SUCCESS', 'cmd_line': 'pants compile --foo-bar baz:qux' }, 'cumulative_timings': [], 'self_timings': [t('compile.java', 12.34), t('resolve.ivy', 56)] }) statsdb.insert_stats({ 'run_info': { 'id': 'run2', 'timestamp': '1438600000', 'machine': 'ernie', 'user': '******', 'version': '9.8.7', 'buildroot': '/path/to/repo', 'outcome': 'SUCCESS', 'cmd_line': 'pants compile --foo-bar baz:qux' }, 'cumulative_timings': [], 'self_timings': [t('compile.java', 9)] }) stats = list( statsdb.get_stats_for_cmd_line('self_timings', '% compile %')) self.assertEqual( sorted([('compile.java', 9000), ('compile.java', 12340), ('resolve.ivy', 56000)]), sorted(stats)) aggs = list( statsdb.get_aggregated_stats_for_cmd_line( 'self_timings', '% compile %')) self.assertEqual( sorted([('2015-08-03', 'compile.java', 2, 21340), ('2015-08-03', 'resolve.ivy', 1, 56000)]), sorted(aggs))
def test_create_nonexisting_dir(self): # This tests that we can create a database in a directory that does not exist. with temporary_dir() as tmpdir: path = os.path.join(tmpdir, 'nonexistSubdir', 'statsdb.sqlite') statsdb = StatsDB(path) statsdb.ensure_tables()