diff --git a/brew/styles.py b/brew/styles.py index b6d830d..1e9986d 100644 --- a/brew/styles.py +++ b/brew/styles.py @@ -38,7 +38,8 @@ def __init__(self, self.ibu = self._validate_input_list(ibu, (int, float), "IBU") self.color = self._validate_input_list(color, (int, float), "Color") - def _validate_input_list(self, value_list, value_type, name): + @classmethod + def _validate_input_list(cls, value_list, value_type, name): """ Private class to validate inputs for class parameters diff --git a/tests/test_styles.py b/tests/test_styles.py index 008fa4d..ca43e6a 100644 --- a/tests/test_styles.py +++ b/tests/test_styles.py @@ -18,6 +18,30 @@ def setUp(self): # Define Style self.style = american_pale_ale_style + def test_validate_input_list_empty(self): + with self.assertRaises(Exception): + Style._validate_input_list(None, (int, float), 'OG') + + def test_validate_input_list_type(self): + with self.assertRaises(Exception): + Style._validate_input_list({'a': 'b'}, (int, float), 'OG') + + def test_validate_input_list_length_short(self): + with self.assertRaises(Exception): + Style._validate_input_list([1], (int, float), 'OG') + + def test_validate_input_list_length_long(self): + with self.assertRaises(Exception): + Style._validate_input_list([1, 2, 3], (int, float), 'OG') + + def test_validate_input_list_wrong_type(self): + with self.assertRaises(Exception): + Style._validate_input_list([1, '2'], (int, float), 'OG') + + def test_validate_input_list_bad_order(self): + with self.assertRaises(Exception): + Style._validate_input_list([2, 1], (int, float), 'OG') + def test_str(self): out = str(self.style) self.assertEquals(out, '18B American Pale Ale')