def upsert_project(self, name, username, user_ip, **additional_columns): # NOTE: pypi behaviour is to assign the first submitter of a # project the "owner" role. this code does not # perform that behaviour (implement in the view instead) db.validate_argument_column_mapping(additional_columns, packages) existing_project = self.get_project(name) if existing_project: message = "updating project {0}".format(existing_project['name']) query = (packages.update().where( packages.c.name == existing_project['name'])) else: message = "create" query = packages.insert() self.engine.execute( query.values(name=name, normalized_name=utils.normalize_project_name(name), **additional_columns)) self._insert_journal_entry(name, None, message, username, user_ip)
def upsert_project(self, name, username, user_ip, **additional_columns): # NOTE: pypi behaviour is to assign the first submitter of a # project the "owner" role. this code does not # perform that behaviour (implement in the view instead) db.validate_argument_column_mapping(additional_columns, packages) existing_project = self.get_project(name) if existing_project: message = "updating project {0}".format(existing_project['name']) query = (packages.update() .where(packages.c.name == existing_project['name'])) else: message = "create" query = packages.insert() self.engine.execute(query.values( name=name, normalized_name=utils.normalize_project_name(name), **additional_columns )) self._insert_journal_entry(name, None, message, username, user_ip)
def convert_field(self, value, conversion): if conversion == "n": return normalize_project_name(value) return super(FastlyFormatter, self).convert_field(value, conversion)
class ProjectFactory(WarehouseFactory): FACTORY_FOR = table_shim(packages) name = FuzzyText() normalized_name = factory.LazyAttribute( lambda obj: normalize_project_name(obj.name))
def test_normalize_project_name(input_string, expected): if expected is ValueError: with pytest.raises(ValueError): normalize_project_name(input_string) else: assert normalize_project_name(input_string) == expected