Пример #1
0
def get_paths(days, product='Firefox'):
    last_day = utils.utc_today()
    path = get_path(last_day, product)
    if not exists(path):
        last_day -= timedelta(1)

    return [get_path(last_day - timedelta(i), product) for i in range(0, days)]
Пример #2
0
def download_crashes(days, product='Firefox'):
    global SCHEMA_VERSION

    if not os.path.exists('crashclustering_data'):
        os.mkdir('crashclustering_data')

    clean_old_data()
    write_json('crashclustering_data/schema_version', [SCHEMA_VERSION])

    for i in range(0, days):
        download_day_crashes(utils.utc_today() - timedelta(i), product)
Пример #3
0
def clean_old_data():
    try:
        old_schema = read_json('crashclustering_data/schema_version')[0]
    except IOError:
        old_schema = '0'

    MAX_AGE = 30

    for root, dirs, files in os.walk('crashclustering_data'):
        for name in files:
            if 'schema_version' not in name and (
                    old_schema != SCHEMA_VERSION
                    or dateutil.parser.parse(name[-15:-5]).date() <
                    utils.utc_today() - timedelta(MAX_AGE)):
                os.remove(os.path.join('crashclustering_data', name))
Пример #4
0
def get_top(number, channel, days=3, product='Firefox'):
    versions = get_versions(channel, product)

    url = 'https://crash-stats.mozilla.com/api/SuperSearch'

    params = {
        'product': product,
        'date':
        ['>=' + str(utils.utc_today() - timedelta(days) + timedelta(1))],
        'version': versions,
        '_results_number': 0,
        '_facets_size': number,
    }

    r = utils.get_with_retries(url, params=params)

    if r.status_code != 200:
        print(r.text)
        raise Exception(r)

    return [signature['term'] for signature in r.json()['facets']['signature']]
Пример #5
0
 def test_utc_today_returns_today_date(self):
     self.assertEqual(utils.utc_today(), datetime.now().date())