Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix GetOrCreateSerializerMixin not working with pulp_domain #6078

Merged
merged 1 commit into from
Dec 3, 2024

Conversation

gerrod3
Copy link
Contributor

@gerrod3 gerrod3 commented Nov 26, 2024

pulp_domain is not processed in model's serializer since the value is auto-set as a context var on request time. This helper method would run into serializer errors if pulp_domain was specified as a natural key (which you need to do when supporting domains).

@@ -108,3 +115,27 @@ def test_ignored_fields_no_side_effects():
initial_data = {"field1": 1, "csrfmiddlewaretoken": 2}
defined_fields = {"field1": 1}
validate_unknown_fields(initial_data, defined_fields)


class TestGetOrCreateSerializerMixin(TestCase):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you try if this creates valid pytest tests?

Suggested change
class TestGetOrCreateSerializerMixin(TestCase):
class TestGetOrCreateSerializerMixin():

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like the setUp function may not be called with that name.
Also pytest really suggests to move to fixtures.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are there some docs or examples of unit tests with fixtures that hit the database? I was basing my tests off examples in pulp_container.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, rewrote it the fixture way.

mdellweg
mdellweg previously approved these changes Nov 26, 2024
@@ -108,3 +115,27 @@ def test_ignored_fields_no_side_effects():
initial_data = {"field1": 1, "csrfmiddlewaretoken": 2}
defined_fields = {"field1": 1}
validate_unknown_fields(initial_data, defined_fields)


class TestGetOrCreateSerializerMixin(TestCase):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like the setUp function may not be called with that name.
Also pytest really suggests to move to fixtures.

@dralley
Copy link
Contributor

dralley commented Nov 26, 2024

If we're backporting this, it would be nice to have an issue filed

@gerrod3
Copy link
Contributor Author

gerrod3 commented Nov 26, 2024

If we're backporting this, it would be nice to have an issue filed

Can this PR be the issue? Don't feel that we will get much benefit out of creating a duplicate issue that has no new information.

@gerrod3 gerrod3 merged commit ed27c95 into pulp:main Dec 3, 2024
12 checks passed
Copy link

patchback bot commented Dec 3, 2024

Backport to 3.39: 💔 cherry-picking failed — conflicts found

❌ Failed to cleanly apply ed27c95 on top of patchback/backports/3.39/ed27c950a713ed71493cd39d0b0baceabed33b36/pr-6078

Backporting merged PR #6078 into main

  1. Ensure you have a local repo clone of your fork. Unless you cloned it
    from the upstream, this would be your origin remote.
  2. Make sure you have an upstream repo added as a remote too. In these
    instructions you'll refer to it by the name upstream. If you don't
    have it, here's how you can add it:
    $ git remote add upstream https://github.com/pulp/pulpcore.git
  3. Ensure you have the latest copy of upstream and prepare a branch
    that will hold the backported code:
    $ git fetch upstream
    $ git checkout -b patchback/backports/3.39/ed27c950a713ed71493cd39d0b0baceabed33b36/pr-6078 upstream/3.39
  4. Now, cherry-pick PR Fix GetOrCreateSerializerMixin not working with pulp_domain #6078 contents into that branch:
    $ git cherry-pick -x ed27c950a713ed71493cd39d0b0baceabed33b36
    If it'll yell at you with something like fatal: Commit ed27c950a713ed71493cd39d0b0baceabed33b36 is a merge but no -m option was given., add -m 1 as follows instead:
    $ git cherry-pick -m1 -x ed27c950a713ed71493cd39d0b0baceabed33b36
  5. At this point, you'll probably encounter some merge conflicts. You must
    resolve them in to preserve the patch from PR Fix GetOrCreateSerializerMixin not working with pulp_domain #6078 as close to the
    original as possible.
  6. Push this branch to your fork on GitHub:
    $ git push origin patchback/backports/3.39/ed27c950a713ed71493cd39d0b0baceabed33b36/pr-6078
  7. Create a PR, ensure that the CI is green. If it's not — update it so that
    the tests and any other checks pass. This is it!
    Now relax and wait for the maintainers to process your pull request
    when they have some cycles to do reviews. Don't worry — they'll tell you if
    any improvements are necessary when the time comes!

🤖 @patchback
I'm built with octomachinery and
my source is open — https://github.com/sanitizers/patchback-github-app.

@gerrod3 gerrod3 deleted the goc-mixin-domain branch December 3, 2024 14:47
Copy link

patchback bot commented Dec 3, 2024

Backport to 3.28: 💔 cherry-picking failed — conflicts found

❌ Failed to cleanly apply ed27c95 on top of patchback/backports/3.28/ed27c950a713ed71493cd39d0b0baceabed33b36/pr-6078

Backporting merged PR #6078 into main

  1. Ensure you have a local repo clone of your fork. Unless you cloned it
    from the upstream, this would be your origin remote.
  2. Make sure you have an upstream repo added as a remote too. In these
    instructions you'll refer to it by the name upstream. If you don't
    have it, here's how you can add it:
    $ git remote add upstream https://github.com/pulp/pulpcore.git
  3. Ensure you have the latest copy of upstream and prepare a branch
    that will hold the backported code:
    $ git fetch upstream
    $ git checkout -b patchback/backports/3.28/ed27c950a713ed71493cd39d0b0baceabed33b36/pr-6078 upstream/3.28
  4. Now, cherry-pick PR Fix GetOrCreateSerializerMixin not working with pulp_domain #6078 contents into that branch:
    $ git cherry-pick -x ed27c950a713ed71493cd39d0b0baceabed33b36
    If it'll yell at you with something like fatal: Commit ed27c950a713ed71493cd39d0b0baceabed33b36 is a merge but no -m option was given., add -m 1 as follows instead:
    $ git cherry-pick -m1 -x ed27c950a713ed71493cd39d0b0baceabed33b36
  5. At this point, you'll probably encounter some merge conflicts. You must
    resolve them in to preserve the patch from PR Fix GetOrCreateSerializerMixin not working with pulp_domain #6078 as close to the
    original as possible.
  6. Push this branch to your fork on GitHub:
    $ git push origin patchback/backports/3.28/ed27c950a713ed71493cd39d0b0baceabed33b36/pr-6078
  7. Create a PR, ensure that the CI is green. If it's not — update it so that
    the tests and any other checks pass. This is it!
    Now relax and wait for the maintainers to process your pull request
    when they have some cycles to do reviews. Don't worry — they'll tell you if
    any improvements are necessary when the time comes!

🤖 @patchback
I'm built with octomachinery and
my source is open — https://github.com/sanitizers/patchback-github-app.

Copy link

patchback bot commented Dec 3, 2024

Backport to 3.49: 💚 backport PR created

✅ Backport PR branch: patchback/backports/3.49/ed27c950a713ed71493cd39d0b0baceabed33b36/pr-6078

Backported as #6106

🤖 @patchback
I'm built with octomachinery and
my source is open — https://github.com/sanitizers/patchback-github-app.

Copy link

patchback bot commented Dec 3, 2024

Backport to 3.63: 💚 backport PR created

✅ Backport PR branch: patchback/backports/3.63/ed27c950a713ed71493cd39d0b0baceabed33b36/pr-6078

Backported as #6107

🤖 @patchback
I'm built with octomachinery and
my source is open — https://github.com/sanitizers/patchback-github-app.

Copy link

patchback bot commented Dec 3, 2024

Backport to 3.68: 💚 backport PR created

✅ Backport PR branch: patchback/backports/3.68/ed27c950a713ed71493cd39d0b0baceabed33b36/pr-6078

Backported as #6108

🤖 @patchback
I'm built with octomachinery and
my source is open — https://github.com/sanitizers/patchback-github-app.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants