Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
 def convert_field(self, value, conversion):
     if conversion == "n":
         return normalize_project_name(value)
     return super(FastlyFormatter, self).convert_field(value, conversion)
Пример #4
0
class ProjectFactory(WarehouseFactory):
    FACTORY_FOR = table_shim(packages)

    name = FuzzyText()
    normalized_name = factory.LazyAttribute(
        lambda obj: normalize_project_name(obj.name))
Пример #5
0
 def convert_field(self, value, conversion):
     if conversion == "n":
         return normalize_project_name(value)
     return super(FastlyFormatter, self).convert_field(value, conversion)
Пример #6
0
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
Пример #7
0
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