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

Source Jira: added unit tests #20525

Merged
merged 90 commits into from
Dec 16, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
1f8c8fa
bump 0.3.1
grubberr Dec 6, 2022
9887611
Merge branch 'master' into grubberr/9218-source-jira
grubberr Dec 6, 2022
d6868c3
skip requests.codes.NOT_FOUND
grubberr Dec 6, 2022
47b0541
jira.md updated
grubberr Dec 6, 2022
e7d72f5
api 2 -> 3
grubberr Dec 6, 2022
96d02a4
Merge branch 'master' into grubberr/9218-source-jira
grubberr Dec 7, 2022
cb11767
api_v1 added
grubberr Dec 7, 2022
e7aeb6a
jql_compare_date moved to IncrementalJiraStream base class
grubberr Dec 7, 2022
2735b4f
create IssueFields, Projects in constructor
grubberr Dec 7, 2022
5f9704d
Merge branch 'master' into grubberr/9218-source-jira
grubberr Dec 7, 2022
d7b8bf6
_validate_and_transform added
grubberr Dec 7, 2022
d5c8914
Merge branch 'master' into grubberr/9218-source-jira
grubberr Dec 7, 2022
8ebad51
re-implement stream `issues`
grubberr Dec 8, 2022
7834dea
fix start_date typing
grubberr Dec 8, 2022
d888094
Boards improved
grubberr Dec 8, 2022
a18eefa
revert stream Issues work w/o slices
grubberr Dec 8, 2022
ea97c79
issue_comments improved
grubberr Dec 9, 2022
3b06328
remove redundant primary_key
grubberr Dec 9, 2022
c839fce
improved BoardIssues
grubberr Dec 9, 2022
ce152fa
Epics added
grubberr Dec 9, 2022
e60cc01
IssueWorklogs refactored
grubberr Dec 9, 2022
073ef02
Sprints refactored
grubberr Dec 9, 2022
9ee74d7
SprintIssues refactored
grubberr Dec 9, 2022
cf1ab2c
move get_updated_state to incremental base class
grubberr Dec 9, 2022
5f267f3
move jql_compare_date to incremental base class
grubberr Dec 9, 2022
85f9df1
extract read_records to base incremental class
grubberr Dec 10, 2022
53c5fc1
Merge branch 'master' into grubberr/9218-source-jira
grubberr Dec 10, 2022
a5e4521
rename parse_response_root -> extract_field
grubberr Dec 10, 2022
343dde7
ApplicationRoles, Avatars - refactored
grubberr Dec 10, 2022
bb76891
Projects refactored
grubberr Dec 10, 2022
442c722
Boards added
grubberr Dec 11, 2022
1c99ad8
BoardIssues fixed
grubberr Dec 11, 2022
28acd0e
re-implement Issues stream to support JQL project in ('10001', '100002')
grubberr Dec 11, 2022
2493df0
IssueComments refactored
grubberr Dec 11, 2022
762192c
refactored FilterSharing
grubberr Dec 11, 2022
6072723
field_ids_by_name - improved
grubberr Dec 11, 2022
bb93758
IssueCustomFieldContexts - refactored
grubberr Dec 11, 2022
0413545
IssuePriorities refactored
grubberr Dec 11, 2022
05736ef
Merge branch 'master' into grubberr/9218-source-jira
grubberr Dec 12, 2022
ad66abd
additional_fields removed, use fields='*all'
grubberr Dec 12, 2022
9ea9f9d
make PullRequests more robust
grubberr Dec 12, 2022
ff7b809
Epics removed - all data in this stream exists in Issues stream
grubberr Dec 12, 2022
3e8e2bb
SprintIssues refactored
grubberr Dec 12, 2022
4d35d35
IssueRemoteLinks - refactored
grubberr Dec 12, 2022
9cc7ef7
IssueResolutions refactored
grubberr Dec 12, 2022
d769fe1
Merge branch 'master' into grubberr/9218-source-jira
grubberr Dec 13, 2022
43d35ba
IssueVotes refactored
grubberr Dec 13, 2022
0e39235
IssueWatchers refactored
grubberr Dec 13, 2022
2851858
Labels refactored
grubberr Dec 13, 2022
a23b58f
Permissions refactored
grubberr Dec 13, 2022
7494dc9
ProjectAvatars refactored
grubberr Dec 13, 2022
9cb7fc5
ProjectComponents refactored
grubberr Dec 13, 2022
d25d6e2
ProjectEmail refactored
grubberr Dec 13, 2022
d954a65
ProjectPermissionSchemes refactored
grubberr Dec 13, 2022
aa79f61
ProjectVersions refactored
grubberr Dec 13, 2022
01e5ab0
ScreenTabs refactored
grubberr Dec 13, 2022
29d145a
Screens handle forbidden
grubberr Dec 13, 2022
8022b47
ScreenTabFields refactored
grubberr Dec 13, 2022
a939807
TimeTracking refactored
grubberr Dec 13, 2022
0a4e919
paging improved
grubberr Dec 13, 2022
3bba821
UsersGroupsDetailed refactored
grubberr Dec 13, 2022
ce340f1
IssueProperties refactored
grubberr Dec 13, 2022
42e7b17
skip_http_status_codes added
grubberr Dec 13, 2022
f0d65bb
fix SAT
grubberr Dec 13, 2022
ae91af2
Merge branch 'master' into grubberr/9218-source-jira
grubberr Dec 14, 2022
d2609f6
convert to new format
grubberr Dec 14, 2022
a752118
continue to improve SAT
grubberr Dec 14, 2022
5e27e66
re-implement get_starting_point
grubberr Dec 14, 2022
5802c81
full_refresh added
grubberr Dec 14, 2022
18f90b9
expect_records added
grubberr Dec 14, 2022
8a81dd1
jira.md updated
grubberr Dec 14, 2022
0744f91
Merge branch 'master' into grubberr/9218-source-jira
grubberr Dec 14, 2022
d7ee368
"format": "date-time" - added
grubberr Dec 14, 2022
894e9da
Merge branch 'master' into grubberr/9218-source-jira
grubberr Dec 15, 2022
931c04e
TokenAuthenticator -> BasicHttpAuthenticator
grubberr Dec 15, 2022
9b84516
re-implement check_connection
grubberr Dec 15, 2022
8aa95bf
requests_native_auth -> auth
grubberr Dec 15, 2022
16ea12c
check projects added
grubberr Dec 15, 2022
cd89cd4
"airbyte-cdk~=0.14"
grubberr Dec 15, 2022
a1a22da
add more streams to docs
grubberr Dec 15, 2022
fb55927
extract incremental streams
grubberr Dec 15, 2022
f24da68
added unit test for source-jira
darynaishchenko Dec 15, 2022
135bd5e
added unit tests for jira
darynaishchenko Dec 15, 2022
3ead497
Merge branch 'master' into grubberr/9218-source-jira
grubberr Dec 16, 2022
fec7935
order added to spec.json
grubberr Dec 16, 2022
307ced7
description for start date improved
grubberr Dec 16, 2022
a25abc4
Merge branch 'grubberr/9218-source-jira' into daryna/jira/unittests
darynaishchenko Dec 16, 2022
af1cfca
fixed tests
darynaishchenko Dec 16, 2022
a200f00
fixed expected records for stream issues
darynaishchenko Dec 16, 2022
34eb721
Merge branch 'master' into daryna/jira/unittests
grubberr Dec 16, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion airbyte-integrations/connectors/source-jira/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@
MAIN_REQUIREMENTS = ["airbyte-cdk~=0.14", "requests==2.25.1", "pendulum~=2.1.2"]

TEST_REQUIREMENTS = [
"pytest==6.1.2",
"pytest==6.2.5",
"source-acceptance-test",
"responses~=0.22.0",
]

setup(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#
# Copyright (c) 2022 Airbyte, Inc., all rights reserved.
#
259 changes: 259 additions & 0 deletions airbyte-integrations/connectors/source-jira/unit_tests/conftest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,259 @@
#
# Copyright (c) 2022 Airbyte, Inc., all rights reserved.
#

import json
import os

import pytest
from pytest import fixture


@pytest.fixture
def config():
return {
"api_token": "token",
"domain": "domain",
"email": "email@email.com",
"start_date": "2021-01-01T00:00:00Z",
"projects": ["Project1"]
}


def load_file(fn):
return open(os.path.join("unit_tests", "responses", fn)).read()


@fixture
def application_roles_response():
return json.loads(load_file("application_role.json"))


@fixture
def boards_response():
return json.loads(load_file("board.json"))


@fixture
def dashboards_response():
return json.loads(load_file("dashboard.json"))


@fixture
def filters_response():
return json.loads(load_file("filter.json"))


@fixture
def groups_response():
return json.loads(load_file("groups.json"))


@fixture
def issue_fields_response():
return json.loads(load_file("issue_fields.json"))


@fixture
def issues_field_configurations_response():
return json.loads(load_file("issues_field_configurations.json"))


@fixture
def issues_link_types_response():
return json.loads(load_file("issues_link_types.json"))


@fixture
def issues_navigator_settings_response():
return json.loads(load_file("issues_navigator_settings.json"))


@fixture
def issue_notification_schemas_response():
return json.loads(load_file("issue_notification_schemas.json"))


@fixture
def issue_properties_response():
return json.loads(load_file("issue_properties.json"))


@fixture
def issue_resolutions_response():
return json.loads(load_file("issue_resolutions.json"))


@fixture
def issue_security_schemes_response():
return json.loads(load_file("issue_security_schemes.json"))


@fixture
def issue_type_schemes_response():
return json.loads(load_file("issue_type.json"))


@fixture
def jira_settings_response():
return json.loads(load_file("jira_settings.json"))


@fixture
def board_issues_response():
return json.loads(load_file("board_issues.json"))


@fixture
def filter_sharing_response():
return json.loads(load_file("filter_sharing.json"))


@fixture
def projects_response():
return json.loads(load_file("projects.json"))


@fixture
def projects_avatars_response():
return json.loads(load_file("projects_avatars.json"))


@fixture
def projects_categories_response():
return json.loads(load_file("projects_categories.json"))


@fixture
def screens_response():
return json.loads(load_file("screens.json"))


@fixture
def screen_tabs_response():
return json.loads(load_file("screen_tabs.json"))


@fixture
def screen_tab_fields_response():
return json.loads(load_file("screen_tab_fields.json"))


@fixture
def sprints_response():
return json.loads(load_file("sprints.json"))


@fixture
def sprints_issues_response():
return json.loads(load_file("sprint_issues.json"))


@fixture
def time_tracking_response():
return json.loads(load_file("time_tracking.json"))


@fixture
def users_response():
return json.loads(load_file("users.json"))


@fixture
def users_groups_detailed_response():
return json.loads(load_file("users_groups_detailed.json"))


@fixture
def workflows_response():
return json.loads(load_file("workflows.json"))


@fixture
def workflow_schemas_response():
return json.loads(load_file("workflow_schemas.json"))


@fixture
def workflow_statuses_response():
return json.loads(load_file("workflow_statuses.json"))


@fixture
def workflow_status_categories_response():
return json.loads(load_file("workflow_status_categories.json"))


@fixture
def avatars_response():
return json.loads(load_file("avatars.json"))


@fixture
def issues_response():
return json.loads(load_file("issues.json"))


@fixture
def issue_comments_response():
return json.loads(load_file("issue_comments.json"))


@fixture
def issue_custom_field_contexts_response():
return json.loads(load_file("issue_custom_field_contexts.json"))


@fixture
def issue_property_keys_response():
return json.loads(load_file("issue_property_keys.json"))


@fixture
def project_permissions_response():
return json.loads(load_file("project_permissions.json"))


@fixture
def project_email_response():
return json.loads(load_file("project_email.json"))


@fixture
def project_components_response():
return json.loads(load_file("project_components.json"))


@fixture
def permissions_response():
return json.loads(load_file("permissions.json"))


@fixture
def labels_response():
return json.loads(load_file("labels.json"))


@fixture
def issue_worklogs_response():
return json.loads(load_file("issue_worklogs.json"))


@fixture
def issue_watchers_response():
return json.loads(load_file("issue_watchers.json"))


@fixture
def issue_votes_response():
return json.loads(load_file("issue_votes.json"))


@fixture
def issue_remote_links_response():
return json.loads(load_file("issue_remote_links.json"))


@fixture
def projects_versions_response():
return json.loads(load_file("projects_versions.json"))
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
[
{
"key": "jira-software",
"groups": [
"jira-software-users",
"atlassian-addons-admin",
"system-administrators",
"site-admins",
"administrators"
],
"groupDetails": [
{
"name": "test",
"groupId": "test",
"self": "test"
},
{
"name": "administrators",
"groupId": "test",
"self": "test"
},
{
"name": "atlassian-addons-admin",
"groupId": "test",
"self": "test"
},
{
"name": "system-administrators",
"groupId": "test",
"self": "test"
},
{
"name": "site-admins",
"groupId": "test",
"self": "test"
}
],
"name": "Jira Software",
"defaultGroups": [
"jira-software-users"
],
"defaultGroupsDetails": [
{
"name": "jira-software-users",
"groupId": "test",
"self": "test"
}
],
"selectedByDefault": false,
"defined": true,
"numberOfSeats": 100,
"remainingSeats": 61,
"userCount": 14,
"userCountDescription": "users",
"hasUnlimitedSeats": false,
"platform": false
}
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"system": [
{
"id": "10300",
"isSystemAvatar": true,
"isSelected": false,
"isDeletable": false,
"urls": {
"16x16": "/secure/useravatar?size=xsmall&avatarId=10300",
"24x24": "/secure/useravatar?size=small&avatarId=10300",
"32x32": "/secure/useravatar?size=medium&avatarId=10300",
"48x48": "/secure/useravatar?avatarId=10300"
}
},
{
"id": "10303",
"isSystemAvatar": true,
"isSelected": false,
"isDeletable": false,
"urls": {
"16x16": "/secure/useravatar?size=xsmall&avatarId=10303",
"24x24": "/secure/useravatar?size=small&avatarId=10303",
"32x32": "/secure/useravatar?size=medium&avatarId=10303",
"48x48": "/secure/useravatar?avatarId=10303"
}
}
]
}
Loading