Skip to content

Commit 1d31918

Browse files
committed
Add testcase of analysis clone
1 parent 1b98978 commit 1d31918

File tree

1 file changed

+84
-0
lines changed

1 file changed

+84
-0
lines changed

apps/analysis/tests/test_mutations.py

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,12 @@
1919
AnalysisPillarFactory,
2020
AnalysisReportFactory,
2121
AnalysisReportUploadFactory,
22+
AnalyticalStatementFactory,
23+
DiscardedEntryFactory,
2224
)
2325

2426
from analysis.models import (
27+
DiscardedEntry,
2528
TopicModel,
2629
TopicModelCluster,
2730
AutomaticSummary,
@@ -1732,3 +1735,84 @@ def _query_check(**kwargs):
17321735
self.assertEqual(analysis_pillar_resp_data['title'], self.update_minput['analysisPillarUpdate']['title'])
17331736
self.assertEqual(analysis_pillar_resp_data['id'], str(self.update_minput['analysisPillarID']))
17341737
self.assertEqual(analysis_pillar_resp_data['analysisId'], str(self.analysis.id))
1738+
1739+
1740+
class TestCloneAnalysisMutationSchema(GraphQLTestCase):
1741+
ANALYSIS_CLONE_MUTATION = '''
1742+
mutation AnalysisClone($projectId: ID!, $data: AnalysisCloneInputType!) {
1743+
project(id: $projectId) {
1744+
analysisClone(data: $data) {
1745+
ok
1746+
errors
1747+
result {
1748+
id
1749+
title
1750+
endDate
1751+
}
1752+
__typename
1753+
}
1754+
__typename
1755+
}
1756+
}
1757+
'''
1758+
1759+
def setUp(self):
1760+
super().setUp()
1761+
self.project = ProjectFactory.create()
1762+
self.member_user = UserFactory.create()
1763+
self.non_member_user = UserFactory.create()
1764+
self.readonly_member_user = UserFactory.create()
1765+
self.project.add_member(self.readonly_member_user, role=self.project_role_reader_non_confidential)
1766+
af = AnalysisFrameworkFactory.create()
1767+
project = ProjectFactory.create(analysis_framework=af)
1768+
lead = LeadFactory.create(project=project)
1769+
self.project.add_member(self.member_user, role=self.project_role_member)
1770+
entry = EntryFactory.create(project=project, lead=lead)
1771+
EntryFactory.create(project=project, lead=lead)
1772+
self.analysis = AnalysisFactory.create(
1773+
project=project,
1774+
team_lead=self.member_user,
1775+
end_date=datetime.date(2022, 4, 1),
1776+
1777+
)
1778+
pillar = AnalysisPillarFactory.create(analysis=self.analysis, title='title1', assignee=self.member_user)
1779+
AnalyticalStatementFactory.create(
1780+
analysis_pillar=pillar,
1781+
statement='Hello from here',
1782+
client_id='1',
1783+
)
1784+
DiscardedEntryFactory.create(
1785+
entry=entry,
1786+
analysis_pillar=pillar,
1787+
tag=DiscardedEntry.TagType.REDUNDANT
1788+
)
1789+
1790+
def test_clone_analysis(self):
1791+
def _query_check(**kwargs):
1792+
return self.query_check(
1793+
self.ANALYSIS_CLONE_MUTATION,
1794+
variables=self.minput,
1795+
**kwargs
1796+
)
1797+
self.minput = dict(
1798+
data=dict(
1799+
analysisId=self.analysis.id,
1800+
title='cloned_title',
1801+
endDate="2022-04-01",
1802+
),
1803+
projectId=self.project.id,
1804+
)
1805+
# without login
1806+
_query_check(assert_for_error=True)
1807+
1808+
# With login (non-member)
1809+
self.force_login(self.non_member_user)
1810+
_query_check(assert_for_error=True)
1811+
1812+
# member user (read-only)
1813+
self.force_login(self.readonly_member_user)
1814+
_query_check(assert_for_error=True)
1815+
1816+
# member user
1817+
self.force_login(self.member_user)
1818+
_query_check(assert_for_error=False)

0 commit comments

Comments
 (0)