import RegularExpressionParser.Parser as Parser import unittest class DataBaseTests(unittest.TestCase): def test_safe_url(self): str_query = "search?q=book.rating_count<1000000&AND&book.rating>4.4" expected_url = "http://127.0.0.1:5000/api/search?q=book.rating_count%3C1000000%26AND%26book.rating%3E4.4" output_url = "http://127.0.0.1:5000/api/" + Parser.url_safe(str_query) self.assertEqual(output_url, expected_url) def test_valid_goodreads_url(self): url = "https://www.goodreads.com/book/show/35133922-educated" self.assertTrue(Parser.check_if_address_valid(url)) def test_invalid_goodreads_url(self): url1 = "https://www.google.com/book/show/35133922-educated" self.assertFalse(Parser.check_if_address_valid(url1)) url2 = "https://www.goodreads.com/book/show/over-35133922-educated" self.assertFalse(Parser.check_if_address_valid(url2)) url3 = "https://www.goodreads.com/book/show/educated" self.assertFalse(Parser.check_if_address_valid(url3)) def test_parse_query_to_url(self): query = "book.id:12345678 AND book.rating: > 4.80" result_url = Parser.parse_query_to_url(query) expect_url = "book.id%3A12345678%26AND%26book.rating%3A%3E4.80" self.assertEqual(result_url, expect_url) def test_parse_query_to_json(self): query = "book.id: NOT 12345678" expect_json = {"id": {"$not": {"$regex": "12345678", "$options": "i"}}} output_json = Parser.parse_query_to_json(query) self.assertEqual(output_json, expect_json)