def test14_integer_field_validation(self): """Test integer field validation""" validation = { "type": "less_than", "equals": True, "value": 5, } # Test entering a metadata field with integer validation and a valid default value metadata_field = { "external_id": EXTERNAL_ID_INT_VALIDATION, "label": EXTERNAL_ID_INT_VALIDATION, "type": "integer", "default_value": 5, "validation": validation, } result = api.add_metadata_field(metadata_field) self.assert_metadata_field(result, "integer", { "validation": validation, "default_value": metadata_field["default_value"], }) # Test entering a metadata field with integer validation and a valid default value with self.assertRaises(api.BadRequest): api.add_metadata_field({ "external_id": EXTERNAL_ID_INT_VALIDATION_2, "label": EXTERNAL_ID_INT_VALIDATION_2, "type": "integer", "default_value": 6, "validation": validation, })
def setUpClass(cls): cloudinary.reset_config() if not cloudinary.config().api_secret: return for field in METADATA_FIELDS_TO_CREATE: if "label" not in field: field["label"] = field["external_id"] api.add_metadata_field(field)
def setUp(self): cloudinary.reset_config() with ignore_exception( suppress_traceback_classes=(exceptions.BadRequest, )): api.add_metadata_field({ "external_id": METADATA_FIELD_UNIQUE_EXTERNAL_ID, "label": METADATA_FIELD_UNIQUE_EXTERNAL_ID, "type": "string", })
def test11_delete_metadata_field_does_not_release_external_id(self): """Test deleting a metadata field definition then attempting to create a new one with the same external id which should fail. """ api.delete_metadata_field(EXTERNAL_ID_DELETE_2) with self.assertRaises(api.BadRequest): api.add_metadata_field({ "external_id": EXTERNAL_ID_DELETE_2, "label": EXTERNAL_ID_DELETE_2, "type": "integer", })
def setUpClass(cls): api.add_metadata_field({ "external_id": METADATA_FIELD_UNIQUE_EXTERNAL_ID, "label": METADATA_FIELD_UNIQUE_EXTERNAL_ID, "type": "string", }) api.add_metadata_field({ "external_id": METADATA_FIELD_EXTERNAL_ID_SET, "label": METADATA_FIELD_EXTERNAL_ID_SET, "type": "set", "datasource": { "values": METADATA_FIELD_SET_DATASOURCE_MULTIPLE, }, })
def test13_date_field_default_value_validation(self): """Test date field validation""" today = datetime.now() past_date = today - timedelta(days=3) yesterday_date = today - timedelta(days=1) future_date = today + timedelta(days=3) last_three_days_validation = { "rules": [ { "type": "greater_than", "equals": False, "value": time.strftime("%Y-%m-%d", past_date.timetuple()), }, { "type": "less_than", "equals": False, "value": time.strftime("%Y-%m-%d", today.timetuple()), }, ], "type": "and", } # Test entering a metadata field with date validation and a valid default value metadata_field = { "external_id": EXTERNAL_ID_DATE_VALIDATION, "label": EXTERNAL_ID_DATE_VALIDATION, "type": "date", "default_value": time.strftime("%Y-%m-%d", yesterday_date.timetuple()), "validation": last_three_days_validation, } result = api.add_metadata_field(metadata_field) self.assert_metadata_field(result, "date", { "validation": last_three_days_validation, "default_value": metadata_field["default_value"], }) # Test entering a metadata field with date validation and an invalid default value with self.assertRaises(api.BadRequest): api.add_metadata_field({ "external_id": EXTERNAL_ID_DATE_VALIDATION_2, "label": EXTERNAL_ID_DATE_VALIDATION_2, "type": "date", "default_value": time.strftime("%Y-%m-%d", future_date.timetuple()), "validation": last_three_days_validation, })
def test04_create_int_metadata_field(self, mocker): """Test creating an integer metadata field""" mocker.return_value = MOCK_RESPONSE api.add_metadata_field({ "external_id": EXTERNAL_ID_INT, "label": EXTERNAL_ID_INT, "type": "integer", }) args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith("/metadata_fields")) self.assertEqual(get_method(mocker), "POST") self.assertEqual(json.loads(kargs["body"].decode('utf-8')), { "type": "integer", "external_id": EXTERNAL_ID_INT, "label": EXTERNAL_ID_INT, })
def setUpClass(cls): cloudinary.reset_config() if not cloudinary.config().api_secret: return print("Running tests for cloud: {}".format(cloudinary.config().cloud_name)) api.add_metadata_field({ "external_id": METADATA_EXTERNAL_ID, "label": METADATA_EXTERNAL_ID, "type": "string", "default_value": METADATA_DEFAULT_VALUE }) for id in [API_TEST_ID, API_TEST_ID2]: uploader.upload(TEST_IMAGE, public_id=id, tags=[API_TEST_TAG, ], context="key=value", eager=[API_TEST_TRANS_SCALE100], overwrite=True)
def test05_create_date_metadata_field(self): """Test creating a date metadata field""" result = api.add_metadata_field({ "external_id": EXTERNAL_ID_DATE, "label": EXTERNAL_ID_DATE, "type": "date", }) self.assert_metadata_field(result, "date", { "label": EXTERNAL_ID_DATE, "external_id": EXTERNAL_ID_DATE, "mandatory": False, })
def test06_create_enum_metadata_field(self, mocker): """Test creating an Enum metadata field""" mocker.return_value = MOCK_RESPONSE api.add_metadata_field({ "datasource": { "values": DATASOURCE_SINGLE, }, "external_id": EXTERNAL_ID_ENUM, "label": EXTERNAL_ID_ENUM, "type": "enum", }) args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith("/metadata_fields")) self.assertEqual(get_method(mocker), "POST") self.assertEqual(json.loads(kargs["body"].decode('utf-8')), { "datasource": { "values": DATASOURCE_SINGLE, }, "external_id": EXTERNAL_ID_ENUM, "label": EXTERNAL_ID_ENUM, "type": "enum", })
def test07_create_set_metadata_field(self): """Test creating a set metadata field""" result = api.add_metadata_field({ "datasource": { "values": DATASOURCE_MULTIPLE, }, "external_id": EXTERNAL_ID_SET, "label": EXTERNAL_ID_SET, "type": "set", }) self.assert_metadata_field(result, "set", { "label": EXTERNAL_ID_SET, "external_id": EXTERNAL_ID_SET, "mandatory": False, })