Ejemplo n.º 1
0
    def test__has_acceptable_categories_length__pattern_with_more_than_5_categories__returns_false(
            self):
        self.pattern = Pattern('test_pattern')
        categories = self.pattern.get_category_options()

        self.pattern = Pattern('-'.join([categories[0]] * 6))
        self.assertFalse(self.pattern.has_acceptable_categories_length())
Ejemplo n.º 2
0
 def test__get_categories__pattern_with_randoms__returns_array_of_correct_length(
     self,
 ):
     self.pattern = Pattern("-".join(["random"] * 2))
     categories = self.pattern.get_categories()
     self.assertEqual(len(categories), 2)
     [self.assertNotEqual(category, None) for category in categories]
Ejemplo n.º 3
0
    def test__has_acceptable_categories_length__valid_number_of_categories_returns_true(
            self):
        self.pattern = Pattern('test_pattern')
        categories = self.pattern.get_category_options()

        self.pattern = Pattern('-'.join([categories[0], categories[1]]))
        self.assertTrue(self.pattern.has_acceptable_categories_length())
Ejemplo n.º 4
0
  def test__get_categories__pattern_from_categories__returns_array_of_correct_length(self):
    self.pattern = Pattern('test_pattern')
    categories = self.pattern.get_category_options()

    self.pattern = Pattern('-'.join([categories[0], categories[1]]))
    categories = self.pattern.get_categories()
    self.assertEqual(len(categories), 2)
    [self.assertNotEqual(category, None) for category in categories]
Ejemplo n.º 5
0
def get_response():
    pattern = Pattern(request.args.get("pattern", ""))
    number = int(request.args.get("number", 1))

    response_obj = {}

    if not pattern.is_valid():
        response_obj["error"] = "pattern is invalid"
    else:
        response_obj["data"] = get_qual_ids(pattern, number)

    response = make_response(response_obj)
    return response
Ejemplo n.º 6
0
class TestPattern(unittest.TestCase):
    def setUp(self):
        self.pattern = None

    def test__get_category_options__returns_non_empty_list(self):
        self.pattern = Pattern('test_pattern')
        self.assertGreater(len(self.pattern.get_category_options()), 0)

    def test__has_acceptable_categories_length__valid_number_of_categories_returns_true(
            self):
        self.pattern = Pattern('test_pattern')
        categories = self.pattern.get_category_options()

        self.pattern = Pattern('-'.join([categories[0], categories[1]]))
        self.assertTrue(self.pattern.has_acceptable_categories_length())

    def test__get_nonexistent_categories__nonempty_invalid_category_list__returns_false(
            self):
        self.pattern = Pattern('invalid_pattern')
        self.assertTrue(len(self.pattern.get_nonexistent_categories()) > 0)

    def test__has_acceptable_categories_length__pattern_with_more_than_5_categories__returns_false(
            self):
        self.pattern = Pattern('test_pattern')
        categories = self.pattern.get_category_options()

        self.pattern = Pattern('-'.join([categories[0]] * 6))
        self.assertFalse(self.pattern.has_acceptable_categories_length())

    def test__has_acceptable_categories_length__empty_pattern__returns_false(
            self):
        self.pattern = Pattern('')
        self.assertFalse(self.pattern.has_acceptable_categories_length())

    def test__get_categories__pattern_from_categories__returns_array_of_correct_length(
            self):
        self.pattern = Pattern('test_pattern')
        categories = self.pattern.get_category_options()

        self.pattern = Pattern('-'.join([categories[0], categories[1]]))
        categories = self.pattern.get_categories()
        self.assertEqual(len(categories), 2)
        [self.assertNotEqual(category, None) for category in categories]

    def test__get_categories__pattern_with_randoms__returns_array_of_correct_length(
            self):
        self.pattern = Pattern('-'.join(['random'] * 2))
        categories = self.pattern.get_categories()
        self.assertEqual(len(categories), 2)
        [self.assertNotEqual(category, None) for category in categories]
Ejemplo n.º 7
0
def get_response():
    pattern = Pattern(request.args.get("pattern", ""))
    number = int(request.args.get("number", 1))
    nonexistent_categories = pattern.get_nonexistent_categories()

    response_obj = {}

    if not pattern.has_acceptable_categories_length():
        num_categories_entered = len(pattern.get_categories())
        response_obj[
            "error"] = "Number of categories entered (%s) is invalid! Should be between 1 to 5 categories" % (
                num_categories_entered)
    elif len(nonexistent_categories) > 0:
        response_obj["error"] = "Error! Found %s invalid categories: %s" % (
            len(nonexistent_categories), nonexistent_categories)
    else:
        response_obj["data"] = get_qual_ids(pattern, number)

    response = make_response(response_obj)
    return response
Ejemplo n.º 8
0
def badge_endpoint_response():
    example = get_qual_ids(Pattern('food-animal'), 1)[0]
    response_obj = {
        "schemaVersion": 1,
        "label": "Qual ID",
        "message": example,
        "color": f"hsl({random.randint(0,359)}, 100%, 50%)"
    }
    response = make_response(response_obj)
    response.headers['Cache-Control'] = 'no-cache, no-store'
    return response
Ejemplo n.º 9
0
def badge_endpoint_response():
    example = get_qual_ids(Pattern("fruit-geography"), 1)[0]
    response_obj = {
        "schemaVersion": 1,
        "label": "Qual ID",
        "message": example,
        "color": f"hsl({random.randint(0,359)}, 100%, 50%)",
    }
    response = make_response(response_obj)
    response.headers["Cache-Control"] = "no-cache, no-store"
    return response
Ejemplo n.º 10
0
 def test__get_category_options__returns_non_empty_list(self):
     self.pattern = Pattern('test_pattern')
     self.assertGreater(len(self.pattern.get_category_options()), 0)
Ejemplo n.º 11
0
 def get_qual_ids(arguments):
     pattern = Pattern(arguments.get_categories())
     return [pattern.random() for _ in range(arguments.get_number())]
Ejemplo n.º 12
0
 def test__has_acceptable_categories_length__empty_pattern__returns_false(
         self):
     self.pattern = Pattern('')
     self.assertFalse(self.pattern.has_acceptable_categories_length())
Ejemplo n.º 13
0
class TestPattern(unittest.TestCase):
    def setUp(self):
        self.pattern = None

    def test__get_category_options__returns_non_empty_list(self):
        self.pattern = Pattern("")
        self.assertGreater(len(self.pattern.get_category_options()), 0)

    def test__get_category_options__returns_alphabetically_ordered_list(self):
        self.pattern = Pattern("")
        categories = self.pattern.get_category_options()
        error_message = "categories should be listed in alphabetical order"
        self.assertEqual(categories, sorted(categories), error_message)

    def test__has_acceptable_categories_length__valid_number_of_categories_returns_true(
        self,
    ):
        self.pattern = Pattern("test_pattern")
        categories = self.pattern.get_category_options()

        self.pattern = Pattern("-".join([categories[0], categories[1]]))
        self.assertTrue(self.pattern.has_acceptable_categories_length())

    def test__get_nonexistent_categories__nonempty_invalid_category_list__returns_false(
        self,
    ):
        self.pattern = Pattern("invalid_pattern")
        self.assertTrue(len(self.pattern.get_nonexistent_categories()) > 0)

    def test__has_acceptable_categories_length__pattern_with_more_than_5_categories__returns_false(
        self,
    ):
        self.pattern = Pattern("test_pattern")
        categories = self.pattern.get_category_options()

        self.pattern = Pattern("-".join([categories[0]] * 6))
        self.assertFalse(self.pattern.has_acceptable_categories_length())

    def test__has_acceptable_categories_length__empty_pattern__returns_false(self):
        self.pattern = Pattern("")
        self.assertFalse(self.pattern.has_acceptable_categories_length())

    def test__get_categories__pattern_from_categories__returns_array_of_correct_length(
        self,
    ):
        self.pattern = Pattern("test_pattern")
        categories = self.pattern.get_category_options()

        self.pattern = Pattern("-".join([categories[0], categories[1]]))
        categories = self.pattern.get_categories()
        self.assertEqual(len(categories), 2)
        [self.assertNotEqual(category, None) for category in categories]

    def test__get_categories__pattern_with_randoms__returns_array_of_correct_length(
        self,
    ):
        self.pattern = Pattern("-".join(["random"] * 2))
        categories = self.pattern.get_categories()
        self.assertEqual(len(categories), 2)
        [self.assertNotEqual(category, None) for category in categories]
Ejemplo n.º 14
0
  def test__is_valid__valid_pattern_from_category_options_returns_true(self):
    self.pattern = Pattern('test_pattern')
    categories = self.pattern.get_category_options()

    self.pattern = Pattern('-'.join([categories[0], categories[1]]))
    self.assertTrue(self.pattern.is_valid())
Ejemplo n.º 15
0
 def test__get_category_options__returns_alphabetically_ordered_list(self):
     self.pattern = Pattern("")
     categories = self.pattern.get_category_options()
     error_message = "categories should be listed in alphabetical order"
     self.assertEqual(categories, sorted(categories), error_message)
Ejemplo n.º 16
0
def categories_response():
    response = {"data": Pattern.get_category_options()}
    return jsonify(response)
Ejemplo n.º 17
0
 def test__is_valid__invalid_pattern__returns_false(self):
   self.pattern = Pattern('invalid_pattern')
   self.assertFalse(self.pattern.is_valid())
Ejemplo n.º 18
0
  def test__is_valid__pattern_with_more_than_5_categories__returns_false(self):
    self.pattern = Pattern('test_pattern')
    categories = self.pattern.get_category_options()

    self.pattern = Pattern('-'.join([categories[0]] * 6))
    self.assertFalse(self.pattern.is_valid())
Ejemplo n.º 19
0
 def test__get_nonexistent_categories__nonempty_invalid_category_list__returns_false(
         self):
     self.pattern = Pattern('invalid_pattern')
     self.assertTrue(len(self.pattern.get_nonexistent_categories()) > 0)
Ejemplo n.º 20
0
 def test__random__pattern__correct_qual_id(self):
     """Pattern -> random"""
     result = Pattern(self.categories).random()
     self.assertEqual("-".join(self.VALUES), result)