Skip to content

Commit

Permalink
backend tests done
Browse files Browse the repository at this point in the history
  • Loading branch information
lakshmi2506 committed Feb 2, 2024
1 parent 5261e44 commit a839ca0
Show file tree
Hide file tree
Showing 6 changed files with 84 additions and 26 deletions.
25 changes: 13 additions & 12 deletions metecho/api/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -1475,18 +1475,6 @@ def queue_get_unsaved_changes(self, *, force_get=False, originating_user_id):

get_unsaved_changes_job.delay(self, originating_user_id=originating_user_id)

def queue_get_nonsource_components(self, *, originating_user_id, desired_type):
from .jobs import get_nonsource_components_job

self.currently_refreshing_changes = True
self.save()
self.notify_changed(originating_user_id=originating_user_id)
get_nonsource_components_job.delay(
scratch_org=self,
desired_type=desired_type,
originating_user_id=originating_user_id,
)

def finalize_get_unsaved_changes(self, *, error=None, originating_user_id):
self.currently_refreshing_changes = False
if error is None:
Expand All @@ -1502,12 +1490,25 @@ def finalize_get_unsaved_changes(self, *, error=None, originating_user_id):
originating_user_id=originating_user_id,
)

def queue_get_nonsource_components(self, *, originating_user_id, desired_type):
from .jobs import get_nonsource_components_job

self.currently_refreshing_changes = True
self.save()
self.notify_changed(originating_user_id=originating_user_id)
get_nonsource_components_job.delay(
scratch_org=self,
desired_type=desired_type,
originating_user_id=originating_user_id,
)

def finalize_get_nonsource_components(self, *, error=None, originating_user_id):
self.currently_refreshing_changes = False
if error is None:
self.save()
self.notify_changed(originating_user_id=originating_user_id)
else:
self.non_source_changes = {}
self.save()
self.notify_scratch_org_error(
error=error,
Expand Down
70 changes: 66 additions & 4 deletions metecho/api/tests/jobs.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
create_pr,
create_repository,
delete_scratch_org,
get_nonsource_components,
get_social_image,
get_unsaved_changes,
parse_datasets,
Expand Down Expand Up @@ -475,20 +476,27 @@ def test_create_org_and_run_flow__no_setup_flow():


@pytest.mark.django_db
def test_get_unsaved_changes(scratch_org_factory):
def test_get_unsaved_changes(scratch_org_factory, patch_dataset_env):
scratch_org = scratch_org_factory(
latest_revision_numbers={"TypeOne": {"NameOne": 10}}
)
with ExitStack() as stack:
project_config, org_config, sf, schema, repo = patch_dataset_env
stack.enter_context(patch(f"{PATCH_ROOT}.local_github_checkout"))
stack.enter_context(patch("metecho.api.sf_org_changes.get_repo_info"))
get_valid_target_directories = stack.enter_context(
patch(f"{PATCH_ROOT}.get_valid_target_directories")
)
ListNonSourceTrackable = stack.enter_context(
patch(f"{PATCH_ROOT}.ListNonSourceTrackable")
)
get_valid_target_directories.return_value = (
{"source": ["src"], "config": [], "post": [], "pre": []},
False,
)
ListNonSourceTrackable.return_value = MagicMock(
return_value=["TypeThree", "TypeFour"]
)
get_latest_revision_numbers = stack.enter_context(
patch(f"{PATCH_ROOT}.get_latest_revision_numbers")
)
Expand All @@ -504,9 +512,61 @@ def test_get_unsaved_changes(scratch_org_factory):
"TypeOne": ["NameOne"],
"TypeTwo": ["NameTwo"],
}
assert scratch_org.non_source_changes == {
"TypeThree": [],
"TypeFour": [],
}
assert scratch_org.latest_revision_numbers == {"TypeOne": {"NameOne": 10}}


@pytest.mark.django_db
class TestNonSourceComponents:
def test_get_nonsource_components(self, scratch_org_factory, patch_dataset_env):
scratch_org = scratch_org_factory(
non_source_changes={"TypeOne": [], "TypeTwo": []}
)
with ExitStack() as stack:
project_config, org_config, sf, schema, repo = patch_dataset_env
ListComponents = stack.enter_context(patch(f"{PATCH_ROOT}.ListComponents"))
ListComponents.return_value = MagicMock(
return_value=[
{"MemberType": "TypeOne", "MemberName": "ListOne"},
{"MemberType": "TypeOne", "MemberName": "ListTwo"},
]
)
get_nonsource_components(
scratch_org=scratch_org,
originating_user_id=None,
desired_type="TypeOne",
)
scratch_org.refresh_from_db()
assert scratch_org.non_source_changes == {
"TypeOne": ["ListOne", "ListTwo"],
"TypeTwo": [],
}
assert ListComponents.called

def test_get_nonsource_components_fail(
self, caplog, scratch_org_factory, patch_dataset_env, task_factory
):
scratch_org = scratch_org_factory(
non_source_changes={"TypeOne": [], "TypeTwo": []}
)
with ExitStack() as stack:
project_config, org_config, sf, schema, repo = patch_dataset_env
ListComponents = stack.enter_context(patch(f"{PATCH_ROOT}.ListComponents"))
ListComponents.side_effect = MagicMock(side_effect=Exception("Not valid!!"))
with pytest.raises(Exception):
get_nonsource_components(
scratch_org=scratch_org,
originating_user_id=None,
desired_type="TypeOne",
)
scratch_org.refresh_from_db()
assert ListComponents.called
assert "Not valid!!" in caplog.text


def test_create_branches_on_github_then_create_scratch_org():
# Not a great test, but not a complicated function.
with ExitStack() as stack:
Expand Down Expand Up @@ -743,7 +803,9 @@ def test_error(self, mocker, caplog, user_factory):

@pytest.mark.django_db
def test_commit_changes_from_org(scratch_org_factory, user_factory):
scratch_org = scratch_org_factory()
scratch_org = scratch_org_factory(
non_source_changes={"nonsource": ["typeone", "typetwo"]}
)
user = user_factory()
with ExitStack() as stack:
commit_changes_to_github = stack.enter_context(
Expand All @@ -766,7 +828,7 @@ def test_commit_changes_from_org(scratch_org_factory, user_factory):
repository.branch.return_value = MagicMock(commit=commit)
get_repo_info.return_value = repository

desired_changes = {"name": ["member"]}
desired_changes = {"name": ["member"], "nonsource": ["typeone"]}
commit_message = "test message"
target_directory = "src"
assert scratch_org.latest_revision_numbers == {}
Expand Down Expand Up @@ -854,7 +916,7 @@ def test_commit_changes_from_org(self, scratch_org_factory, user_factory):
@pytest.mark.django_db
class TestRefreshCommits:
def test_refreshes_commits(self, project_factory, epic_factory, task_factory):
project = project_factory(repo_id=123, branch_name="project")
project = project_factory(repo_id=789, branch_name="project")
epic = epic_factory(project=project, branch_name="epic")
task = task_factory(epic=epic, branch_name="task", origin_sha="1234abcd")
with ExitStack() as stack:
Expand Down
3 changes: 0 additions & 3 deletions metecho/api/views.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import logging

from django.contrib.auth import get_user_model
from django.contrib.sites.shortcuts import get_current_site
from django.db.models import Case, IntegerField, Q, When
Expand Down Expand Up @@ -76,7 +74,6 @@
)

User = get_user_model()
logger = logging.getLogger()


class RepoPushPermission(BasePermission):
Expand Down
2 changes: 1 addition & 1 deletion src/js/components/tasks/detail.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ const TaskDetail = (
orgHasChanges =
(devOrg?.total_unsaved_changes || 0) -
(devOrg?.total_ignored_changes || 0) >
0 || devOrg?.has_non_source_changes === true;
0 || devOrg?.has_non_source_changes;
userIsDevOwner = Boolean(
userIsAssignedDev && devOrg?.is_created && devOrg?.owner === user.id,
);
Expand Down
2 changes: 1 addition & 1 deletion src/js/components/tasks/retrieveMetadata/changes.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ const ChangesForm = ({
</Accordion>
</ModalCard>
)}
{hasmetadatachanges === true && (
{hasmetadatachanges && (
<ModalCard noBodyPadding>
<>
<div
Expand Down
8 changes: 3 additions & 5 deletions src/js/components/tasks/retrieveMetadata/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -266,9 +266,7 @@ const RetrieveMetadataModal = ({ org, isOpen, closeModal }: Props) => {
label={t('Go Back')}
variant="outline-brand"
onClick={prevPage}
disabled={
ignoringChanges || org?.currently_refreshing_changes === true
}
disabled={ignoringChanges || org.currently_refreshing_changes}
/>,
<Button
key="page-2-button-2"
Expand All @@ -278,7 +276,7 @@ const RetrieveMetadataModal = ({ org, isOpen, closeModal }: Props) => {
disabled={
!(numberChangesChecked || numberIgnoredChecked) ||
ignoringChanges ||
org?.currently_refreshing_changes === true
org.currently_refreshing_changes
}
/>,
<Button
Expand All @@ -289,7 +287,7 @@ const RetrieveMetadataModal = ({ org, isOpen, closeModal }: Props) => {
disabled={
!(numberChangesChecked || numberIgnoredChecked) ||
ignoringChanges ||
org?.currently_refreshing_changes === true
org.currently_refreshing_changes
}
/>,
],
Expand Down

0 comments on commit a839ca0

Please sign in to comment.