def test_parse_input_7(): ip = InputParser() query = "location=edmonton date=2018/11/07" searches_actual = ip.parse_input(query) searches_expected = { "location": [("=", "edmonton")], "date": [("=", "2018/11/07")] } assert searches_actual == searches_expected
def test_parse_input_8(): ip = InputParser() query = "cat=art-collectibles camera" searches_actual = ip.parse_input(query) searches_expected = { "keyword": [("=", "camera")], "category": [("=", "art-collectibles")] } assert searches_actual == searches_expected
def test_parse_input_6(): ip = InputParser() query = "price >= 20 date > 2018/11/05" searches_actual = ip.parse_input(query) searches_expected = { "price": [(">=", "20")], "date": [(">", "2018/11/05")] } assert searches_actual == searches_expected
def test_parse_input_4(): ip = InputParser() query = "date > 2018/11/05 camera%" searches_actual = ip.parse_input(query) searches_expected = { "date": [(">", "2018/11/05")], "keyword": [("%", "camera")] } assert searches_actual == searches_expected
def test_parse_input_9(): ip = InputParser() query = "camera date>=2018/11/05 date<=2018/11/07 price > 20 price < 40" searches_actual = ip.parse_input(query) searches_expected = { "keyword": [("=", "camera")], "date": [(">=", "2018/11/05"), ("<=", "2018/11/07")], "price": [(">", "20"), ("<", "40")] } assert searches_actual == searches_expected
def phase3(file=None): with AdsDatabase() as ads_database: input_parser = InputParser() for line in fileinput.input(file): line = line.lower().strip() # print(line) if input_parser.validate_query(line): # print(input_parser.parse_input(line)) ads_database.execute(input_parser.parse_input(line)) elif line.startswith("output"): ads_database.change_mode(line) else: print("Invalid query") pass pass pass pass
def test_parse_input_11(): ip = InputParser() query = " " searches_actual = ip.parse_input(query) searches_expected = {} assert searches_actual == searches_expected
def test_parse_input_5(): ip = InputParser() query = "price < 20" searches_actual = ip.parse_input(query) searches_expected = {"price": [("<", "20")]} assert searches_actual == searches_expected
def test_parse_input_3(): ip = InputParser() query = "date <= 2018/11/05" searches_actual = ip.parse_input(query) searches_expected = {"date": [("<=", "2018/11/05")]} assert searches_actual == searches_expected
def test_parse_input_2(): ip = InputParser() query = "camera%" searches_actual = ip.parse_input(query) searches_expected = {"keyword": [("%", "camera")]} assert searches_actual == searches_expected