def test_run_all_parameters_none(self): er = ExternalResultsRunner() try: er.run(None) self.fail('Expected CommunityDetectionError') except CommunityDetectionError as ce: self.assertEqual('Algorithm is None', str(ce))
def test_cdinfomap_json_out_from_service_with_error(self): temp_dir = tempfile.mkdtemp() try: with open(self.get_test_file('cdinfomap_out.json'), 'r') as f: jdata = json.load(f) jdata['message'] = 'some error' jdata['status'] = 'failed' out_file = os.path.join(temp_dir, 'out.json') with open(out_file, 'w') as f: json.dump(jdata, f) er = ExternalResultsRunner() e_code, \ result, \ err = er.run(algorithm=out_file) self.assertEqual(1, e_code) jres = json.loads(result) self.assertTrue('id' in jres.keys()) self.assertTrue('message' in jres.keys()) self.assertEqual('some error', jres['message']) self.assertTrue('status' in jres.keys()) self.assertEqual('failed', jres['status']) self.assertEqual(6625, len(result)) self.assertEqual('some error', err) finally: shutil.rmtree(temp_dir)
def test_cdlouvain(self): er = ExternalResultsRunner() e_code,\ result,\ err = er.run(algorithm=self.get_test_file('cdoslom:0.3.0.out')) self.assertEqual(0, e_code) self.assertEqual('748,740,c-c;740,296', result[0:19]) self.assertEqual(6012, len(result)) self.assertEqual(None, err)
def test_cdlouvain(self): er = ExternalResultsRunner() e_code,\ result,\ err = er.run(algorithm=self.get_test_file('cdlouvain:0.2.0.out')) self.assertEqual(0, e_code) self.assertEqual('740,269,c-m;740,270', result[0:19]) self.assertEqual(5652, len(result)) self.assertEqual(None, err)
def test_cdinfomap(self): er = ExternalResultsRunner() e_code,\ result,\ err = er.run(algorithm=self.get_test_file('cdinfomap:0.1.0.out')) self.assertEqual(0, e_code) self.assertEqual('790,770,c-c;752,721', result[0:19]) self.assertEqual(6264, len(result)) self.assertEqual(None, err)
def test_cdhidefbeta(self): er = ExternalResultsRunner() e_code,\ result,\ err = er.run(algorithm=self.get_test_file('cdhidef:1.1.1b1.out')) self.assertEqual(0, e_code) jres = json.loads(result) self.assertTrue('communityDetectionResult' in jres.keys()) self.assertTrue('nodeAttributesAsCX2' in jres.keys()) self.assertEqual(None, err)
def test_algorithm_file_does_not_exist(self): er = ExternalResultsRunner() temp_dir = tempfile.mkdtemp() nonexist_file = os.path.join(temp_dir, 'doesnotexist') try: er.run(algorithm=nonexist_file) self.fail('Expected CommunityDetectionError') except CommunityDetectionError as ce: self.assertEqual(nonexist_file + ' is not a file', str(ce)) finally: shutil.rmtree(temp_dir)
def test_algorithm_file_is_not_readable(self): er = ExternalResultsRunner() temp_dir = tempfile.mkdtemp() try: data_file = os.path.join(temp_dir, 'afile') with open(data_file, 'w') as f: f.write('hello\n') f.flush() os.chmod(data_file, 0) er.run(algorithm=data_file) self.fail('Expected CommunityDetectionError') except CommunityDetectionError as ce: self.assertTrue('Permission denied' in str(ce)) finally: shutil.rmtree(temp_dir)
def test_cdinfomap_json_out_from_service(self): er = ExternalResultsRunner() e_code, \ result, \ err = er.run(algorithm=self.get_test_file('cdinfomap_out.json')) self.assertEqual(0, e_code) jres = json.loads(result) self.assertTrue('id' in jres.keys()) self.assertTrue('message' in jres.keys()) self.assertEqual(None, jres['message']) self.assertTrue('status' in jres.keys()) self.assertEqual('complete', jres['status']) self.assertEqual(6643, len(result)) self.assertEqual(None, err)
def test_algorithm_file_has_invalid_json(self): er = ExternalResultsRunner() temp_dir = tempfile.mkdtemp() try: data_file = os.path.join(temp_dir, 'afile') with open(data_file, 'w') as f: f.write('{hello\n') f.flush() e_code,\ result,\ err = er.run(algorithm=data_file) self.assertEqual(0, e_code) self.assertEqual('{hello\n', result) self.assertEqual(None, err) except CommunityDetectionError as ce: self.assertTrue('Permission denied' in str(ce)) finally: shutil.rmtree(temp_dir)