def s3_files_for(r_from, r_to, projects=[], versions=[]): for project, version in iter_versions(projects, versions): key = 'results:test-methods:{project}:{version}:dev'.format( project=project, version=version ) test_methods = r_to.lrange(key, 0, -1) print "{project}:{version} has {tms} methods".format( project=project, version=version, tms=len(test_methods) ) for test_method in test_methods: c_name, _, m_name = test_method.partition('::') is_class_empty = [] for tool in ["codecover", "cobertura", "jmockit"]: class_key = mk_key('test-classes-cvg', [tool, project, version]) class_r = json.loads(r_from.hget(class_key, c_name)) is_class_empty.append(is_empty(tool, class_r)) if all(is_class_empty): continue is_method_nonempty = [] for tool in ["codecover", "cobertura", "jmockit"]: method_key = mk_key('test-methods-run-cvg', [tool, project, version]) try: method_r = json.loads(r_from.hget(method_key, test_method)) if not is_empty(tool, method_r): key = ':'.join([tool, project, str(version), test_method]) DIR = '/scratch/darioush/files' p = LocalPath(DIR) / '{key}.tar.gz'.format(key=key) assert p.exists() is_method_nonempty.append(True) with open(str(p)) as f: s3_up = put_into_s3('cvg-files', [tool, project, version, 'dev'], test_method, f) else: is_method_nonempty.append(False) except TypeError: print "--> Missing result {tool}:{project}:{version}:dev:{test}".format(tool=tool,test=test_method, project=project, version=version) except AssertionError: print "--> Missing file {tool}:{project}:{version}:dev:{test}".format(tool=tool,test=test_method, project=project, version=version) if any(is_method_nonempty): mut_key = mk_key('test-methods-run-cvg', ['major', project, version]) try: mut_r = json.loads(r_from.hget(mut_key, test_method)) if not is_empty('major', mut_r): key = ':'.join(['major', project, str(version), test_method]) DIR = '/scratch/darioush/files' p = LocalPath(DIR) / '{key}.tar.gz'.format(key=key) assert p.exists() with open(str(p)) as f: s3_up = put_into_s3('cvg-files', ['major', project, version, 'dev'], test_method, f) except TypeError: tool = 'major' print "--> Missing result {tool}:{project}:{version}:dev:{test}".format(tool=tool,test=test_method, project=project, version=version) except AssertionError: print "--> Missing file {tool}:{project}:{version}:dev:{test}".format(tool=tool,test=test_method, project=project, version=version)