@classmethod
    @usage("add CONNECTION")
    def add(cls, connection):
        filename = cls._get_config_filename(connection)
        if os.path.exists(filename):
            raise ConfigFileError("There is already a config file at " + filename)
        else:
            config = dict(protocol='https')
            domain = raw_input("Domain? (leave blank for %s.myshopify.com) " % (connection))
            if not domain.strip():
                domain = "%s.myshopify.com" % (connection)
            config['domain'] = domain
            print("")
            print("open https://%s/admin/api in your browser to get API credentials" % (domain))
            config['api_key'] = raw_input("API key? ")
            config['password'] = raw_input("Password? ")
            if not os.path.isdir(cls._shop_config_dir):
                os.makedirs(cls._shop_config_dir)
            with open(filename, 'w') as f:
                f.write(yaml.dump(config, default_flow_style=False, explicit_start="---"))
        if len(cls._available_connections()) == 1:
            cls.default(connection)
When a ListField is given a non-list value, then validate should raise a ValidationError.
dataset/ETHPy150Open Shopify/shopify_python_api/scripts/shopify_api.py/Tasks.add--crossover with--dataset/ETHPy150Open estebistec/drf-compound-fields/tests/test_listfield.py/test_validate_non_list