def test_imgix_domain_forward_lash_check_source_config(self):
        with patch("os.path.isfile") as isfile_mock:
            isfile_mock.return_value = True

            mock_data = json.dumps({"api_key": "example", "domains": {"/sdafasdf/": ""}})
            with patch.object(builtins, "open", mock_open(read_data=mock_data)):
                self.assertEqual(validate_config(mock_data), False)
    def test_imgix_correct_domain_source_config(self):
        with patch("os.path.isfile") as isfile_mock:
            isfile_mock.return_value = True

            mock_data = json.dumps({"api_key": "example", "domains": {"dsaf.not.imgix.net": ""}})
            with patch.object(builtins, "open", mock_open(read_data=mock_data)):
                self.assertEqual(validate_config(mock_data), False)
    def test_config_plain_text_handling(self):
        with patch("os.path.isfile") as isfile_mock:
            isfile_mock.return_value = True

            for x in self.the_basics + self.json_exclude:
                with patch.object(builtins, "open", mock_open(read_data=x)):
                    self.assertEqual(validate_config(x), False)
    def test_config_plain_text_handling(self):
        with patch('os.path.isfile') as isfile_mock:
            isfile_mock.return_value = True

            for x in self.the_basics + self.json_exclude:
                with patch.object(builtins, 'open', mock_open(read_data=x)):
                    self.assertEqual(validate_config(x), False)
    def test_api_key_type_handling_config(self):
        with patch("os.path.isfile") as isfile_mock:
            isfile_mock.return_value = True

            for x in self.the_basics:
                mock_data = json.dumps({"api_key": x})
                with patch.object(builtins, "open", mock_open(read_data=mock_data)):
                    self.assertEqual(validate_config(mock_data), False)
    def test_scheme_types_handling_config(self):
        with patch("os.path.isfile") as isfile_mock:
            isfile_mock.return_value = True

            for y in reversed(self.the_basics):
                mock_data = json.dumps({"api_key": "example", "domains": {"dsaf.not.imgix.net": {"schemes": y}}})
                with patch.object(builtins, "open", mock_open(read_data=mock_data)):
                    self.assertEqual(validate_config(mock_data), False)
    def test_incorrect_schemes_config(self):
        with patch("os.path.isfile") as isfile_mock:
            isfile_mock.return_value = True

            mock_data = json.dumps(
                {"api_key": "example", "domains": {"example.imgix.net": {"schemes": ["http", "htt"]}}}
            )
            with patch.object(builtins, "open", mock_open(read_data=mock_data)):
                self.assertEqual(validate_config(mock_data), False)
    def test_domains_dict_type_handling_config(self):
        with patch("os.path.isfile") as isfile_mock:
            isfile_mock.return_value = True

            for x in self.basic_types:
                for y in reversed(self.the_basics):
                    mock_data = json.dumps({"api_key": "example", "domains": {x: y}})
                    with patch.object(builtins, "open", mock_open(read_data=mock_data)):
                        self.assertEqual(validate_config(mock_data), False)
    def test_correct_validate_config(self):
        with patch("os.path.isfile") as isfile_mock:
            isfile_mock.return_value = True

            mock_data = json.dumps(
                {"api_key": "somealphanumericvalue", "domains": {"blah.imgix.net": {"schemes": ["http", "https"]}}}
            )
            with patch.object(builtins, "open", mock_open(read_data=mock_data)):
                self.assertEqual(validate_config(mock_data), True)
    def test_api_key_type_handling_config(self):
        with patch('os.path.isfile') as isfile_mock:
            isfile_mock.return_value = True

            for x in self.the_basics:
                mock_data = json.dumps({'api_key': x})
                with patch.object(builtins, 'open',
                                  mock_open(read_data=mock_data)):
                    self.assertEqual(validate_config(mock_data), False)
    def test_imgix_correct_domain_source_config(self):
        with patch('os.path.isfile') as isfile_mock:
            isfile_mock.return_value = True

            mock_data = json.dumps({
                'api_key': 'example',
                'domains': {
                    'dsaf.not.imgix.net': ''
                }
            })
            with patch.object(builtins, 'open',
                              mock_open(read_data=mock_data)):
                self.assertEqual(validate_config(mock_data), False)
    def test_imgix_domain_forward_lash_check_source_config(self):
        with patch('os.path.isfile') as isfile_mock:
            isfile_mock.return_value = True

            mock_data = json.dumps({
                'api_key': 'example',
                'domains': {
                    '/sdafasdf/': ''
                }
            })
            with patch.object(builtins, 'open',
                              mock_open(read_data=mock_data)):
                self.assertEqual(validate_config(mock_data), False)
    def test_domains_dict_type_handling_config(self):
        with patch('os.path.isfile') as isfile_mock:
            isfile_mock.return_value = True

            for x in self.basic_types:
                for y in reversed(self.the_basics):
                    mock_data = json.dumps({
                        'api_key': 'example',
                        'domains': {
                            x: y
                        }
                    })
                    with patch.object(builtins, 'open',
                                      mock_open(read_data=mock_data)):
                        self.assertEqual(validate_config(mock_data), False)
    def test_correct_config(self):
        with patch('os.path.isfile') as isfile_mock:
            isfile_mock.return_value = True

            mock_data = json.dumps({
                'api_key': 'example',
                'domains': {
                    'example.imgix.net': {
                        'schemes': ['http', 'https']
                    }
                }
            })
            with patch.object(builtins, 'open',
                              mock_open(read_data=mock_data)):
                self.assertEqual(validate_config(mock_data), True)
    def test_correct_validate_config(self):
        with patch('os.path.isfile') as isfile_mock:
            isfile_mock.return_value = True

            mock_data = json.dumps({
                "api_key": "somealphanumericvalue",
                "domains": {
                    "blah.imgix.net": {
                        "schemes": ["http", "https"]
                    }
                }
            })
            with patch.object(builtins, 'open',
                              mock_open(read_data=mock_data)):
                self.assertEqual(validate_config(mock_data), True)
    def test_scheme_types_handling_config(self):
        with patch('os.path.isfile') as isfile_mock:
            isfile_mock.return_value = True

            for y in reversed(self.the_basics):
                mock_data = json.dumps({
                    'api_key': 'example',
                    'domains': {
                        'dsaf.not.imgix.net': {
                            'schemes': y
                        }
                    }
                })
                with patch.object(builtins, 'open',
                                  mock_open(read_data=mock_data)):
                    self.assertEqual(validate_config(mock_data), False)
 def test_no_config(self):
     self.assertEqual(validate_config(""), False)
 def test_no_config(self):
     self.assertEqual(validate_config(''), False)