Пример #1
0
def test_generate_stats_on_s3():
    # Local imports are recommended when using moto
    from emmaa.analyze_tests_results import generate_stats_on_s3
    from emmaa.util import find_number_of_files_on_s3, make_date_str
    from emmaa.model_tests import update_model_manager_on_s3
    # Try with only one set of results first (as for new model/test)
    client = setup_bucket(add_results=True, add_mm=True, add_model=True)
    msg = generate_stats_on_s3('test',
                               'model',
                               upload_stats=True,
                               bucket=TEST_BUCKET_NAME)
    assert msg.latest_round
    assert not msg.previous_round
    assert not msg.previous_json_stats
    assert find_number_of_files_on_s3(TEST_BUCKET_NAME,
                                      'model_stats/test/model_stats_') == 1
    tsg = generate_stats_on_s3('test',
                               'tests',
                               'simple_tests',
                               upload_stats=True,
                               bucket=TEST_BUCKET_NAME)
    assert tsg.latest_round
    assert not tsg.previous_round
    assert not tsg.previous_json_stats
    assert find_number_of_files_on_s3(TEST_BUCKET_NAME,
                                      'stats/test/test_stats_') == 1
    # Now add new results and new mm
    time.sleep(1)
    update_model_manager_on_s3('test', TEST_BUCKET_NAME)
    client.put_object(
        Body=json.dumps(previous_results, indent=1),
        Bucket=TEST_BUCKET_NAME,
        Key=f'results/test/results_simple_tests_{make_date_str()}.json')
    msg = generate_stats_on_s3('test',
                               'model',
                               upload_stats=True,
                               bucket=TEST_BUCKET_NAME)
    assert msg.latest_round
    assert msg.previous_round
    assert msg.previous_json_stats
    assert find_number_of_files_on_s3(TEST_BUCKET_NAME,
                                      'model_stats/test/model_stats_') == 2
    tsg = generate_stats_on_s3('test',
                               'tests',
                               'simple_tests',
                               upload_stats=True,
                               bucket=TEST_BUCKET_NAME)
    assert tsg.latest_round
    assert tsg.previous_round
    assert tsg.previous_json_stats
    assert find_number_of_files_on_s3(TEST_BUCKET_NAME,
                                      'stats/test/test_stats_') == 2
Пример #2
0
import argparse
from emmaa.analyze_tests_results import generate_stats_on_s3

if __name__ == '__main__':
    parser = argparse.ArgumentParser(
        description='Script to generate statistic for the latest round of'
        'tests and save to Amazon S3.')
    parser.add_argument('-m', '--model', help='Model name', required=True)
    parser.add_argument('-s',
                        '--stats_mode',
                        help='Mode of stats (model or'
                        ' tests)',
                        required=True)
    parser.add_argument(
        '-t',
        '--tests',
        default='large_corpus_tests',
        help='Test file name.',
    )
    args = parser.parse_args()

    generate_stats_on_s3(model_name=args.model,
                         mode=args.stats_mode,
                         test_corpus_str=args.tests,
                         upload_stats=True)