コード例 #1
0
def test_uploader_identity_can_user_upload(user, role, expected) -> None:
    identity = UploaderIdentityFactory.create()
    if role:
        UploaderIdentityMemberFactory.create(
            user=user,
            identity=identity,
            role=role,
        )
    assert identity.can_user_upload(user) == expected
コード例 #2
0
def create_test_service_account_user():
    identity_owner = ThunderstoreUserFactory()
    identity = UploaderIdentityFactory()
    UploaderIdentityMemberFactory(user=identity_owner,
                                  identity=identity,
                                  role="owner")
    form = CreateServiceAccountForm(
        user=identity_owner,
        data={
            "identity": identity,
            "nickname": "Nickname"
        },
    )
    assert form.is_valid()
    return form.save().user
コード例 #3
0
def test_manifest_v1_serializer_dependencies_valid(user, manifest_v1_data):
    reference = PackageReference.parse("actual_package-reference-1.0.0")
    PackageVersionFactory.create(
        package=PackageFactory.create(
            owner=UploaderIdentityFactory.create(name=reference.namespace, ),
            name=reference.name,
        ),
        name=reference.name,
        version_number=reference.version_str,
    )
    identity = UploaderIdentity.get_or_create_for_user(user)
    manifest_v1_data["dependencies"] = [str(reference)]
    serializer = ManifestV1Serializer(
        user=user,
        uploader=identity,
        data=manifest_v1_data,
    )
    assert serializer.is_valid() is True
コード例 #4
0
def test_fields_list_dependency_field():
    field = serializers.ListField(
        child=DependencyField(),
        max_length=100,
        allow_empty=True,
    )
    identity = UploaderIdentityFactory.create(name="tester")
    versions = [
        PackageVersionFactory.create(
            package=PackageFactory.create(owner=identity, name=f"package_{i}"),
            name=f"package_{i}",
        ) for i in range(10)
    ]
    references = [x.reference for x in versions]
    reference_strings = [str(x) for x in references]
    result = field.run_validation(reference_strings)
    assert len(result) == 10
    assert isinstance(result[0], PackageReference)
    assert result == references
コード例 #5
0
def test_package_query_count(django_assert_max_num_queries, package_count, version_count):
    for package_id in range(package_count):
        package = PackageFactory.create(
            owner=UploaderIdentityFactory.create(
                name=f"uploader_{package_id}"
            ),
            name=f"package_{package_id}",
        )
        for version_id in range(version_count):
            PackageVersionFactory.create(
                package=package,
                name=f"package_{package_id}",
                version_number=f"{version_id}.0.0",
            )

    packages = get_mod_list_queryset()
    with django_assert_max_num_queries(package_count * 5 + 3):
        serializer = PackageSerializer(packages, many=True)
        _ = serializer.data
コード例 #6
0
def test_package_query_count(django_assert_max_num_queries, package_count, version_count, community_site):
    with CaptureQueriesContext(connection) as context:
        for package_id in range(package_count):
            package = PackageFactory.create(
                owner=UploaderIdentityFactory.create(
                    name=f"uploader_{package_id}"
                ),
                name=f"package_{package_id}",
            )
            for version_id in range(version_count):
                PackageVersionFactory.create(
                    package=package,
                    name=f"package_{package_id}",
                    version_number=f"{version_id}.0.0",
                )
            PackageListing.objects.create(package=package, community=community_site.community)
        creation_queries = len(context)

    packages = get_package_listing_queryset(community_site)
    with django_assert_max_num_queries(package_count + creation_queries + 1):
        serializer = PackageListingSerializer(packages, many=True, context={"community_site": community_site})
        _ = serializer.data
コード例 #7
0
def test_uploader_identity_validation_duplicates_ignore_case() -> None:
    UploaderIdentityFactory.create(name="test")
    with pytest.raises(ValidationError) as e:
        UploaderIdentityFactory.create(name="Test")
    assert "The author name already exists" in str(e.value)