def test_min_max_dimensions(self): ops = {'w': MAX_IMAGE_W*2, 'h': MAX_IMAGE_H*2} max_dim = {'w': MAX_IMAGE_W, 'h': MAX_IMAGE_H} params = param_validation(ops) self.assertEqual(max_dim, params) ops = {'w': 0, 'h': -1} min_dim = {'w': 1, 'h': 1} params = param_validation(ops) self.assertEqual(min_dim, params)
def test_valid(self): ops = {'WIDTH': 10, 'height': 20, 'fit': 'bounds', 'format': 'jpeg', 'quality': 75, 'auto': 'compress'} params = param_validation(ops) self.assertIn('w', params) ops = {'w': 10, 'h': 20, 'fit': 'CROP', 'fm': 'jpeg', 'q': 75, 'auto': 'compress'} params = param_validation(ops) self.assertIn('fit', params) ops = {'w': 10, 'h': 20, 'f': 'clip', 'dpr': 5.3, 'fm': 'jpeg', 'q': 75, 'auto': 'compress'} params = param_validation(ops) self.assertEqual(ops, params)
def test_other_limits(self): ops = {'q': 120} params = param_validation(ops) exp_ops = {'q': 100} self.assertEqual(exp_ops, params) ops = {'q': -1} params = param_validation(ops) exp_ops = {'q': 1} self.assertEqual(exp_ops, params) ops = {'dpr': 0.0} params = param_validation(ops) exp_ops = {'dpr': 1} self.assertEqual(exp_ops, params) ops = {'dpr': 10} params = param_validation(ops) exp_ops = {'dpr': 8} self.assertEqual(exp_ops, params)
def test_invalid_schema(self): ops = {'width': 'invalid', 'h': 20, 'fit': 'crop', 'dpr': 1.1, 'format': 'jpeg', 'quality': 75, 'auto': 'compress'} params = param_validation(ops) self.assertNotIn('w', params) self.assertIn('h', params) self.assertIn('q', params) self.assertIn('dpr', params) ops = {'h': 'invalid', 'w': 20, 'fit': 'invalid', 'dpr': 'invalid', 'format': 'jpeg', 'quality': 75, 'auto': 'compress'} params = param_validation(ops) self.assertNotIn('h', params) self.assertNotIn('dpr', params) self.assertNotIn('fit', params) self.assertIn('w', params) self.assertIn('fm', params) self.assertIn('auto', params)
def test_dependencies(self): self.assertIsNotNone(param_validation({'w': 1})) self.assertIsNotNone(param_validation({'h': 1})) self.assertIsNotNone(param_validation({'fm': 'png'})) self.assertIsNotNone(param_validation({'q': 1})) self.assertIsNotNone(param_validation({'auto': 'compress'})) self.assertIsNotNone(param_validation({'dpr': 1})) # # `fit` is dependend of either `w` or `h` # params = param_validation({'fit': 'crop'}) self.assertEqual(params, {})
def test_unknown_params(self): ops = {'invalid': 'value', 'q': 75} params = param_validation(ops) self.assertEqual(ops, params)
def test_invalid_quality_fmt(self): ops = {'fm': 'gif', 'q': 75} params = param_validation(ops) self.assertNotIn('q', params) self.assertIn('fm', params)