示例#1
0
    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,
            })
示例#2
0
    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)
示例#3
0
    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",
            })
示例#4
0
    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",
            })
示例#5
0
 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,
         },
     })
示例#6
0
    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,
            })
示例#7
0
    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,
        })
示例#8
0
    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)
示例#9
0
    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,
        })
示例#10
0
    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",
        })
示例#11
0
    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,
        })