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__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]
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_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 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
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]
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
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
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
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 get_qual_ids(arguments): pattern = Pattern(arguments.get_categories()) return [pattern.random() for _ in range(arguments.get_number())]
def test__has_acceptable_categories_length__empty_pattern__returns_false( self): self.pattern = Pattern('') self.assertFalse(self.pattern.has_acceptable_categories_length())
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]
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())
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 categories_response(): response = {"data": Pattern.get_category_options()} return jsonify(response)
def test__is_valid__invalid_pattern__returns_false(self): self.pattern = Pattern('invalid_pattern') self.assertFalse(self.pattern.is_valid())
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())
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__random__pattern__correct_qual_id(self): """Pattern -> random""" result = Pattern(self.categories).random() self.assertEqual("-".join(self.VALUES), result)