def test_missing_fields():
    """Invalid POST payload"""

    data = post('metrics', {
        'playlist': "playlist_for_missing_fields",
        'uptime': 0
    })
def test_missing_fields():
    """Invalid POST payload"""

    data = post('metrics', {
        'playlist'    : "playlist_for_missing_fields",
        'uptime'      : 0
    })
def test_invalid_data_formats():
    """Invalid data of various kinds"""

    invalid_overrides = {
        'playlist'    : "some playlist",
        'mac_address' : "la di da",
        'ip_address'  : "localhost",
        'cpu_freq'    : 1.0,
        'cpu_temp'    : 45,
        'cpu_usage'   : "50.0", # this passes as a string (due to urlencode), but not as a float
        'browser_ram' : None,
    }

    for override in invalid_overrides:
        data = dict(valid_data)
        data[override] = invalid_overrides[override]
        try:
            res = post('metrics', data)
        except urllib2.HTTPError, e:
            continue
        # all of the above must fail for the test to pass
        raise RuntimeError(override)
def test_invalid_data_formats():
    """Invalid data of various kinds"""

    invalid_overrides = {
        'playlist': "some playlist",
        'mac_address': "la di da",
        'ip_address': "localhost",
        'cpu_freq': 1.0,
        'cpu_temp': 45,
        'cpu_usage':
        "50.0",  # this passes as a string (due to urlencode), but not as a float
        'browser_ram': None,
    }

    for override in invalid_overrides:
        data = dict(valid_data)
        data[override] = invalid_overrides[override]
        try:
            res = post('metrics', data)
        except urllib2.HTTPError, e:
            continue
        # all of the above must fail for the test to pass
        raise RuntimeError(override)
def test_valid_data_point():
    """Valid POST payload"""

    res = post('metrics', valid_data)
def test_valid_data_point():
    """Valid POST payload"""

    res = post('metrics', valid_data)