def test_parse_initial_line_valid_line():
    invalid_line = 'GET /assets/images/bg.jpg HTTP/1.1'
    (method, path, protocol) = parse_initial_line(invalid_line)
    assert method == 'GET'
    assert path == '/assets/images/bg.jpg'
    assert protocol == 'HTTP/1.1'
def test_parse_initial_line_without_path():
    invalid_line = 'GET'
    (method, path, protocol) = parse_initial_line(invalid_line)
    assert method == 'GET'
    assert path == None
    assert protocol == None
def test_parse_initial_line_with_invalid_protocol():
    invalid_line = 'GET /sample page'
    (method, path, protocol) = parse_initial_line(invalid_line)
    assert method == 'GET'
    assert path == '/sample'
    assert protocol == 'page'
def test_parse_initial_line_invalid_line():
    assert parse_initial_line('blah blah blah blah') == ('blah', 'blah blah', 'blah')
    assert parse_initial_line('blah') == ('blah', None, None)
    assert parse_initial_line('blah blah') == ('blah', 'blah', None)