Newer
Older
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)