def test_main_stop_after_uncrecognized(abc_instance_file): """Test that --stop_after raises an error on unknown.""" app.FLAGS.unparse_flags() app.FLAGS( ['argv[0]', '--config', abc_instance_file, '--stop_after', 'foo']) with pytest.raises(app.UsageError): clgen.main([])
def test_main_no_config_flag(): """Test that UsageError is raised if --config flag not set.""" with test.Raises(app.UsageError) as e_info: clgen.main() assert "CLgen --config file not found: '/clgen/config.pbtxt'" == str( e_info.value )
def test_main_min_samples(abc_instance_file): """Test that min_samples samples are produced.""" FLAGS.unparse_flags() FLAGS(["argv0"]) FLAGS.config = abc_instance_file FLAGS.min_samples = 1 clgen.main()
def test_main_print_cache_invalid_argument(abc_instance_file): """Test that UsageError raised if --print_cache_path arg not valid.""" app.FLAGS.unparse_flags() app.FLAGS( ['argv[0]', '--config', abc_instance_file, '--print_cache_path=foo']) with pytest.raises(app.UsageError) as e_info: clgen.main([]) assert "Invalid --print_cache_path argument: 'foo'" == str(e_info.value)
def test_main_config_file_not_found(): """Test that UsageError is raised if --config flag not found.""" with tempfile.TemporaryDirectory() as d: flags.FLAGS.unparse_flags() flags.FLAGS(['argv[0]', '--config', f'{d}/config.pbtxt']) with pytest.raises(app.UsageError) as e_info: clgen.main(['argv[0]']) assert f"File not found: '{d}/config.pbtxt'" == str(e_info.value)
def test_main_stop_after_uncrecognized(abc_instance_file): """Test that --stop_after raises an error on unknown.""" FLAGS.unparse_flags() FLAGS(["argv0"]) FLAGS.config = abc_instance_file FLAGS.stop_after = "foo" with test.Raises(app.UsageError): clgen.main()
def test_main_print_cache_path_model(abc_instance_file, capsys): """Test that --print_cache_path=model prints directory path.""" app.FLAGS.unparse_flags() app.FLAGS( ['argv[0]', '--config', abc_instance_file, '--print_cache_path=model']) clgen.main([]) out, err = capsys.readouterr() assert '/model/' in out assert pathlib.Path(out.strip()).is_dir()
def test_main_stop_after_corpus(abc_instance_file): """Test that --stop_after corpus prevents model training.""" app.FLAGS.unparse_flags() app.FLAGS( ['argv[0]', '--config', abc_instance_file, '--stop_after', 'corpus']) clgen.main([]) instance = clgen.Instance( pbutil.FromFile(pathlib.Path(abc_instance_file), clgen_pb2.Instance())) assert not instance.model.is_trained
def test_main_stop_after_train(abc_instance_file): """Test that --stop_after train trains the model.""" app.FLAGS.unparse_flags() app.FLAGS( ['argv[0]', '--config', abc_instance_file, '--stop_after', 'train']) clgen.main([]) instance = clgen.Instance( pbutil.FromFile(pathlib.Path(abc_instance_file), clgen_pb2.Instance())) assert instance.model.is_trained
def test_main_print_cache_invalid_argument(abc_instance_file): """Test that UsageError raised if --print_cache_path arg not valid.""" FLAGS.unparse_flags() FLAGS(["argv0"]) FLAGS.config = abc_instance_file FLAGS.print_cache_path = "foo" with test.Raises(app.UsageError) as e_info: clgen.main() assert "Invalid --print_cache_path argument: 'foo'" == str(e_info.value)
def test_main_config_file_not_found(): """Test that UsageError is raised if --config flag not found.""" with tempfile.TemporaryDirectory() as d: app.FLAGS.unparse_flags() app.FLAGS(["argv[0]", "--config", f"{d}/config.pbtxt"]) with test.Raises(app.UsageError) as e_info: clgen.main(["argv[0]"]) assert f"CLgen --config file not found: '{d}/config.pbtxt'" == str( e_info.value )
def test_main_print_cache_path_model(abc_instance_file, capsys): """Test that --print_cache_path=model prints directory path.""" FLAGS.unparse_flags() FLAGS(["argv0"]) FLAGS.config = abc_instance_file FLAGS.print_cache_path = "model" clgen.main() out, err = capsys.readouterr() assert "/model/" in out assert pathlib.Path(out.strip()).is_dir()
def test_main_print_cache_path_corpus(abc_instance_file, capsys): """Test that --print_cache_path=corpus prints directory path.""" app.FLAGS.unparse_flags() app.FLAGS( ["argv[0]", "--config", abc_instance_file, "--print_cache_path=corpus"] ) clgen.main([]) out, err = capsys.readouterr() assert "/corpus/" in out assert pathlib.Path(out.strip()).is_dir()
def test_main_stop_after_train(abc_instance_file): """Test that --stop_after train trains the model.""" FLAGS.unparse_flags() FLAGS(["argv0"]) FLAGS.config = abc_instance_file FLAGS.stop_after = "train" clgen.main() instance = clgen.Instance( pbutil.FromFile(pathlib.Path(abc_instance_file), clgen_pb2.Instance()) ) assert instance.model.is_trained
def test_main_stop_after_corpus(abc_instance_file): """Test that --stop_after corpus prevents model training.""" FLAGS.unparse_flags() FLAGS(["argv0"]) FLAGS.config = abc_instance_file FLAGS.stop_after = "corpus" clgen.main() instance = clgen.Instance( pbutil.FromFile(pathlib.Path(abc_instance_file), clgen_pb2.Instance()) ) assert not instance.model.is_trained
def test_main_print_cache_path_sampler(abc_instance_file, capsys): """Test that --print_cache_path=sampler prints directory path.""" FLAGS.unparse_flags() FLAGS(["argv0"]) FLAGS.config = abc_instance_file FLAGS.print_cache_path = "sampler" clgen.main() out, err = capsys.readouterr() assert "/samples/" in out # A sampler's cache isn't created until Sample() is called. assert not pathlib.Path(out.strip()).is_dir()
def test_main_print_cache_path_sampler(abc_instance_file, capsys): """Test that --print_cache_path=sampler prints directory path.""" app.FLAGS.unparse_flags() app.FLAGS([ 'argv[0]', '--config', abc_instance_file, '--print_cache_path=sampler' ]) clgen.main([]) out, err = capsys.readouterr() assert '/samples/' in out # A sampler's cache isn't created until Sample() is called. assert not pathlib.Path(out.strip()).is_dir()
def test_main_print_cache_path_corpus(abc_instance_file, capsys): """Test that --print_cache_path=corpus prints directory path.""" FLAGS.unparse_flags() FLAGS(["argv0"]) FLAGS.config = abc_instance_file FLAGS.print_cache_path = "corpus" clgen.main() out, err = capsys.readouterr() print("OUT", out) assert "/corpus/" in out path = out.strip() assert pathlib.Path(path).is_dir()
def test_main_min_samples(abc_instance_file): """Test that min_samples samples are produced.""" app.FLAGS.unparse_flags() app.FLAGS(["argv[0]", "--config", abc_instance_file, "--min_samples", "1"]) clgen.main([])
def test_main_stop_after_uncrecognized(abc_instance_file): """Test that --stop_after raises an error on unknown.""" app.FLAGS.unparse_flags() app.FLAGS(["argv[0]", "--config", abc_instance_file, "--stop_after", "foo"]) with test.Raises(app.UsageError): clgen.main([])
def test_main_no_config_flag(): """Test that UsageError is raised if --config flag not set.""" with pytest.raises(app.UsageError) as e_info: clgen.main(['argv[0]']) assert "Missing required argument: '--config'" == str(e_info.value)
def test_main_min_samples(abc_instance_file): """Test that min_samples samples are produced.""" app.FLAGS.unparse_flags() app.FLAGS(['argv[0]', '--config', abc_instance_file, '--min_samples', '1']) clgen.main([])
def test_main_unrecognized_arguments(): """Test that UsageError is raised if arguments are not recognized.""" with pytest.raises(app.UsageError) as e_info: clgen.main(['argv[0]', '--foo', '--bar']) assert "Unrecognized command line options: '--foo --bar'" == str( e_info.value)