Skip to content

Commit

Permalink
Add more tests
Browse files Browse the repository at this point in the history
  • Loading branch information
barseghyanartur committed Nov 20, 2019
1 parent 2585476 commit 145e455
Show file tree
Hide file tree
Showing 8 changed files with 230 additions and 57 deletions.
74 changes: 54 additions & 20 deletions src/matyan/tests/mixins.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,53 +33,87 @@ def prepare_changelog_data(cls):
# ************************** Markdown *******************************

# Expected output of the `generate-changelog` command.
changelog_output = project_dir(
no_args_out = project_dir(
'tests/output/generate-changelog.md'
)
with open(changelog_output, 'r') as file:
cls.changelog_output = file.read().strip()
with open(no_args_out, 'r') as file:
cls.no_args_out = file.read().strip()

# Expected output of the `generate-changelog --show-releases`
# command.
changelog_releases_output = project_dir(
show_releases_out = project_dir(
'tests/output/generate-changelog-show-releases.md'
)
with open(changelog_releases_output, 'r') as file:
cls.changelog_releases_output = file.read().strip()
with open(show_releases_out, 'r') as file:
cls.show_releases_out = file.read().strip()

# Expected output of the
# `generate-changelog --show-releases --latest-release`
# command.
changelog_latest_release_show_releases_output = project_dir(
latest_release_show_releases_out = project_dir(
'tests/output/generate-changelog-latest-release-show-releases.md'
)
with open(changelog_latest_release_show_releases_output, 'r') as file:
cls.changelog_latest_release_show_releases_output \
= file.read().strip()
with open(latest_release_show_releases_out, 'r') as file:
cls.latest_release_show_releases_out = file.read().strip()

# Expected output of the
# `generate-changelog --show-releases --headings-only`
# command.
show_releases_headings_only_out = project_dir(
'tests/output/generate-changelog-show-releases-headings-only.md'
)
with open(show_releases_headings_only_out, 'r') as file:
cls.show_releases_headings_only_out = file.read().strip()

# Expected output of the
# `generate-changelog --headings-only`
# command.
headings_only_out = project_dir(
'tests/output/generate-changelog-headings-only.md'
)
with open(headings_only_out, 'r') as file:
cls.headings_only_out = file.read().strip()

# **************************** JSON *******************************

# Expected output of the `json-changelog` command.
json_output = project_dir(
json_no_args_out = project_dir(
'tests/output/json-changelog.json'
)
with open(json_output, 'r') as file:
cls.json_output = file.read().strip()
with open(json_no_args_out, 'r') as file:
cls.json_no_args_out = file.read().strip()

# Expected output of the `json-changelog --show-releases`
# command.
json_show_releases_output = project_dir(
json_show_releases_out = project_dir(
'tests/output/json-changelog-show-releases.json'
)
with open(json_show_releases_output, 'r') as file:
cls.json_show_releases_output = file.read().strip()
with open(json_show_releases_out, 'r') as file:
cls.json_show_releases_out = file.read().strip()

# Expected output of the
# `json-changelog --show-releases --latest-release`
# command.
json_latest_release_show_releases_output = project_dir(
json_latest_release_show_releases_out = project_dir(
'tests/output/json-changelog-latest-release-show-releases.json'
)
with open(json_latest_release_show_releases_output, 'r') as file:
cls.json_latest_release_show_releases_output \
= file.read().strip()
with open(json_latest_release_show_releases_out, 'r') as file:
cls.json_latest_release_show_releases_out = file.read().strip()

# Expected output of the
# `json-changelog --show-releases --headings-only`
# command.
json_show_releases_headings_only_out = project_dir(
'tests/output/json-changelog-show-releases-headings-only.json'
)
with open(json_show_releases_headings_only_out, 'r') as file:
cls.json_show_releases_headings_only_out = file.read().strip()

# Expected output of the
# `json-changelog --headings-only`
# command.
json_headings_only_out = project_dir(
'tests/output/json-changelog-headings-only.json'
)
with open(json_headings_only_out, 'r') as file:
cls.json_headings_only_out = file.read().strip()
15 changes: 15 additions & 0 deletions src/matyan/tests/output/generate-changelog-headings-only.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
**Feature**

*MSFT-1238 Token Authentication*

*MSFT-1237 Improve Document Sharing*

*MSFT-1234 Car Type Suggester*

**Bugfix**

*MSFT-1236 Prevent Duplicate Postal Codes*

**Deprecation**

*MSFT-1235 Deprecate Old Api*
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
### 0.2

**Feature**

*MSFT-1238 Token Authentication*

*MSFT-1237 Improve Document Sharing*

### 0.1

**Bugfix**

*MSFT-1236 Prevent Duplicate Postal Codes*

**Deprecation**

*MSFT-1235 Deprecate Old Api*

**Feature**

*MSFT-1234 Car Type Suggester*
1 change: 1 addition & 0 deletions src/matyan/tests/output/json-changelog-headings-only.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{'feature': {'MSFT-1238': {'commit_hash': 'c42ff7ed2e5b1a3c42ead2b81735397cefc554b8', 'commit_abbr': 'c42ff7e', 'ticket_number': 'MSFT-1238', 'branch_type': 'feature', 'slug': 'Token-authentication', 'title': 'Token Authentication', 'commits': {}, 'release': '0.2'}, 'MSFT-1237': {'commit_hash': '2d799b037160961d7ebc6e552dfd63c60b155553', 'commit_abbr': '2d799b0', 'ticket_number': 'MSFT-1237', 'branch_type': 'feature', 'slug': 'Improve-document-sharing', 'title': 'Improve Document Sharing', 'commits': {}, 'release': '0.2'}, 'MSFT-1234': {'commit_hash': '5babfbe19a31a8386f52d730eccd4df60fb775dd', 'commit_abbr': '5babfbe', 'ticket_number': 'MSFT-1234', 'branch_type': 'feature', 'slug': 'car-type-suggester', 'title': 'Car Type Suggester', 'commits': {}, 'release': '0.1'}}, 'bugfix': {'MSFT-1236': {'commit_hash': '5d20c1b24c0dce57b8972250d09d417e41b6faf2', 'commit_abbr': '5d20c1b', 'ticket_number': 'MSFT-1236', 'branch_type': 'bugfix', 'slug': 'prevent-duplicate-postal-codes', 'title': 'Prevent Duplicate Postal Codes', 'commits': {}, 'release': '0.1'}}, 'deprecation': {'MSFT-1235': {'commit_hash': 'd794c5aa297d3bf34fe20cb47b3e04a298915357', 'commit_abbr': 'd794c5a', 'ticket_number': 'MSFT-1235', 'branch_type': 'deprecation', 'slug': 'deprecate-old-api', 'title': 'Deprecate Old Api', 'commits': {}, 'release': '0.1'}}}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{'0.2': {'feature': {'MSFT-1238': {'commit_hash': 'c42ff7ed2e5b1a3c42ead2b81735397cefc554b8', 'commit_abbr': 'c42ff7e', 'ticket_number': 'MSFT-1238', 'branch_type': 'feature', 'slug': 'Token-authentication', 'title': 'Token Authentication', 'commits': {}, 'release': '0.2'}, 'MSFT-1237': {'commit_hash': '2d799b037160961d7ebc6e552dfd63c60b155553', 'commit_abbr': '2d799b0', 'ticket_number': 'MSFT-1237', 'branch_type': 'feature', 'slug': 'Improve-document-sharing', 'title': 'Improve Document Sharing', 'commits': {}, 'release': '0.2'}}}, '0.1': {'bugfix': {'MSFT-1236': {'commit_hash': '5d20c1b24c0dce57b8972250d09d417e41b6faf2', 'commit_abbr': '5d20c1b', 'ticket_number': 'MSFT-1236', 'branch_type': 'bugfix', 'slug': 'prevent-duplicate-postal-codes', 'title': 'Prevent Duplicate Postal Codes', 'commits': {}, 'release': '0.1'}}, 'deprecation': {'MSFT-1235': {'commit_hash': 'd794c5aa297d3bf34fe20cb47b3e04a298915357', 'commit_abbr': 'd794c5a', 'ticket_number': 'MSFT-1235', 'branch_type': 'deprecation', 'slug': 'deprecate-old-api', 'title': 'Deprecate Old Api', 'commits': {}, 'release': '0.1'}}, 'feature': {'MSFT-1234': {'commit_hash': '5babfbe19a31a8386f52d730eccd4df60fb775dd', 'commit_abbr': '5babfbe', 'ticket_number': 'MSFT-1234', 'branch_type': 'feature', 'slug': 'car-type-suggester', 'title': 'Car Type Suggester', 'commits': {}, 'release': '0.1'}}}}
82 changes: 69 additions & 13 deletions src/matyan/tests/test_commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,28 +26,28 @@ def setUpClass(cls):
cls.prepare_changelog_data()

@log_info
def test_01_generate_changelog_command(self):
def test_generate_changelog(self):
"""Test generate changelog command."""
res = subprocess.check_output([
'generate-changelog',
'--no-other'
]).strip().decode()
self.assertEqual(res, self.changelog_output)
self.assertEqual(res, self.no_args_out)
return res

@log_info
def test_02_generate_changelog_command_show_releases(self):
def test_generate_changelog_show_releases(self):
"""Test generate changelog command."""
res = subprocess.check_output([
'generate-changelog',
'--show-releases',
'--no-other'
]).strip().decode()
self.assertEqual(res, self.changelog_releases_output)
self.assertEqual(res, self.show_releases_out)
return res

@log_info
def test_03_generate_changelog_command_show_latest_release(self):
def test_generate_changelog_show_releases_latest_release(self):
"""Test generate changelog command."""
res = subprocess.check_output([
'generate-changelog',
Expand All @@ -57,31 +57,60 @@ def test_03_generate_changelog_command_show_latest_release(self):
]).strip().decode()
self.assertEqual(
res,
self.changelog_latest_release_show_releases_output
self.latest_release_show_releases_out
)
return res

@log_info
def test_04_json_changelog_command(self):
def test_generate_changelog_show_releases_headings_only(self):
"""Test generate changelog command."""
res = subprocess.check_output([
'generate-changelog',
'--show-releases',
'--headings-only',
'--no-other'
]).strip().decode()
self.assertEqual(
res,
self.show_releases_headings_only_out
)
return res

@log_info
def test_generate_changelog_headings_only(self):
"""Test generate changelog command."""
res = subprocess.check_output([
'generate-changelog',
'--headings-only',
'--no-other'
]).strip().decode()
self.assertEqual(
res,
self.headings_only_out
)
return res

@log_info
def test_json_changelog_command(self):
"""Test json changelog command."""
res = subprocess.check_output([
'json-changelog'
]).strip().decode()
self.assertEqual(res, self.json_output)
self.assertEqual(res, self.json_no_args_out)
return res

@log_info
def test_05_json_changelog_command_show_releases(self):
def test_json_changelog_command_show_releases(self):
"""Test json changelog command."""
res = subprocess.check_output([
'json-changelog',
'--show-releases'
]).strip().decode()
self.assertEqual(res, self.json_show_releases_output)
self.assertEqual(res, self.json_show_releases_out)
return res

@log_info
def test_06_json_changelog_command_show_latest_release(self):
def test_json_changelog_show_releases_latest_release(self):
"""Test json changelog command."""
res = subprocess.check_output([
'json-changelog',
Expand All @@ -90,12 +119,39 @@ def test_06_json_changelog_command_show_latest_release(self):
]).strip().decode()
self.assertEqual(
res,
self.json_latest_release_show_releases_output
self.json_latest_release_show_releases_out
)
return res

@log_info
def test_json_changelog_show_releases_headings_only(self):
"""Test json changelog command."""
res = subprocess.check_output([
'json-changelog',
'--show-releases',
'--headings-only'
]).strip().decode()
self.assertEqual(
res,
self.json_show_releases_headings_only_out
)
return res

@log_info
def test_json_changelog_headings_only(self):
"""Test json changelog command."""
res = subprocess.check_output([
'json-changelog',
'--headings-only'
]).strip().decode()
self.assertEqual(
res,
self.json_headings_only_out
)
return res

@log_info
def test_07_make_config_file(self):
def test_make_config_file(self):
"""Test make config command."""
res = subprocess.check_output([
'matyan-make-config',
Expand Down

0 comments on commit 145e455

Please sign in to comment.