def test_rls_note_extraction_deprecated_categories(self): text = \ '``` improvement operator\n'\ 'improvement-text\n'\ '```\n'\ '``` action operator\n'\ 'action-text\n'\ '```\n'\ '``` noteworthy operator\n'\ 'noteworthy-text\n'\ '```' actual_release_notes = extract_release_notes_with_defaults(text=text, ) self.assertEqual([ release_note_block_with_defaults( category_id=CATEGORY_IMPROVEMENT_ID, target_group_id=TARGET_GROUP_OPERATOR_ID, text='improvement-text', ), release_note_block_with_defaults( category_id=CATEGORY_ACTION_ID, target_group_id=TARGET_GROUP_OPERATOR_ID, text='action-text', ), release_note_block_with_defaults( category_id=CATEGORY_NOTEWORTHY_ID, target_group_id=TARGET_GROUP_OPERATOR_ID, text='noteworthy-text', ), ], actual_release_notes)
def verify_noise_ignored(text): actual_release_notes = extract_release_notes_with_defaults( text=text, ) exp_release_note = release_note_block_with_defaults( text='rlstext', ) self.assertEqual([exp_release_note], actual_release_notes)
def test_multiple_rls_note_extraction(self): text = \ 'random text\n'\ '``` improvement user\n'\ 'imp-user-text\n'\ '```\n'\ '``` improvement operator\r\n'\ 'imp-op-text with carriage return and newline feed\r\n'\ '```\r\n'\ '``` noteworthy operator\n'\ 'notew-text\n'\ '```' actual_release_notes = extract_release_notes_with_defaults(text=text, ) exp_release_note1 = release_note_block_with_defaults( text='imp-user-text', ) exp_release_note_2 = release_note_block_with_defaults( target_group_id=TARGET_GROUP_OPERATOR_ID, text='imp-op-text with carriage return and newline feed', ) exp_release_note_3 = release_note_block_with_defaults( category_id=CATEGORY_NOTEWORTHY_ID, target_group_id=TARGET_GROUP_OPERATOR_ID, text='notew-text', ) expected_release_notes = [ exp_release_note1, exp_release_note_2, exp_release_note_3 ] self.assertEqual(expected_release_notes, actual_release_notes)
def test_rls_note_extraction_multiple_lines(self): text = \ '``` improvement user\n'\ 'first line\n'\ 'second line\r\n'\ 'third line\n'\ '```' actual_release_notes = extract_release_notes_with_defaults(text=text, ) exp_release_note = release_note_block_with_defaults( text='first line\nsecond line\r\nthird line', ) self.assertEqual([exp_release_note], actual_release_notes)
def test_rls_note_extraction_noteworthy(self): text = \ '``` noteworthy operator\n'\ 'notew-text\n'\ '```' actual_release_notes = extract_release_notes_with_defaults(text=text, ) exp_release_note = release_note_block_with_defaults( category_id=CATEGORY_NOTEWORTHY_ID, target_group_id=TARGET_GROUP_OPERATOR_ID, text='notew-text', ) self.assertEqual([exp_release_note], actual_release_notes)
def test_rls_note_extraction_improvement(self): text = \ '``` improvement user\n'\ 'this is a release note text\n'\ '```' actual_release_notes = extract_release_notes_with_defaults(text=text, ) exp_release_note = release_note_block_with_defaults( category_id=CATEGORY_IMPROVEMENT_ID, target_group_id=TARGET_GROUP_USER_ID, text='this is a release note text', ) self.assertEqual([exp_release_note], actual_release_notes)
def test_rls_note_extraction_trim_text(self): text = \ '``` improvement user \n'\ '\n'\ ' text with spaces '\ '\n'\ '\n'\ '```' actual_release_notes = extract_release_notes_with_defaults(text=text, ) exp_release_note = release_note_block_with_defaults( text='text with spaces', ) self.assertEqual([exp_release_note], actual_release_notes)
def source_repo_test(code_block, exp_reference_id, exp_usr, exp_ref_type=REF_TYPE_PULL_REQUEST): actual_release_notes = extract_release_notes_with_defaults( text=code_block, ) exp_release_note = release_note_block_with_defaults( reference_type=exp_ref_type, reference_id=exp_reference_id, user_login=exp_usr, source_repo='github.com/madeup/source-component', ) self.assertEqual([exp_release_note], actual_release_notes)
def test_rls_note_extraction_action(self): text = \ '``` action operator\n'\ 'action-text\n'\ '```' actual_release_notes = extract_release_notes_with_defaults(text=text, ) exp_release_note = release_note_block_with_defaults( category_id=CATEGORY_ACTION_ID, target_group_id=TARGET_GROUP_OPERATOR_ID, text='action-text', ) self.assertEqual([exp_release_note], actual_release_notes)
def test_rls_note_extraction_developer(self): text = \ '``` noteworthy developer\n'\ 'rls-note-for-developer\n'\ '```' actual_release_notes = extract_release_notes_with_defaults(text=text, ) exp_release_note = release_note_block_with_defaults( category_id=CATEGORY_NOTEWORTHY_ID, target_group_id=TARGET_GROUP_DEVELOPER_ID, text='rls-note-for-developer', ) self.assertEqual([exp_release_note], actual_release_notes)
def test_rls_note_extraction_categories(self): text = \ '``` breaking operator\n'\ 'breaking-text\n'\ '```\n'\ '``` feature operator\n'\ 'feature-text\n'\ '```\n'\ '``` bugfix operator\n'\ 'bugfix-text\n'\ '```\n'\ '``` doc operator\n'\ 'doc-text\n'\ '```\n'\ '``` other operator\n'\ 'other-text\n'\ '```' actual_release_notes = extract_release_notes_with_defaults(text=text, ) self.assertEqual([ release_note_block_with_defaults( category_id=CATEGORY_BREAKING_ID, target_group_id=TARGET_GROUP_OPERATOR_ID, text='breaking-text', ), release_note_block_with_defaults( category_id=CATEGORY_FEATURE_ID, target_group_id=TARGET_GROUP_OPERATOR_ID, text='feature-text', ), release_note_block_with_defaults( category_id=CATEGORY_BUGFIX_ID, target_group_id=TARGET_GROUP_OPERATOR_ID, text='bugfix-text', ), release_note_block_with_defaults( category_id=CATEGORY_DOC_ID, target_group_id=TARGET_GROUP_OPERATOR_ID, text='doc-text', ), release_note_block_with_defaults( category_id=CATEGORY_OTHER_ID, target_group_id=TARGET_GROUP_OPERATOR_ID, text='other-text', ), ], actual_release_notes)
def test_rls_note_extraction_target_groups(self): text = \ '``` feature user\n'\ 'rls-note-for-user\n'\ '```\n'\ '``` feature operator\n'\ 'rls-note-for-operator\n'\ '```\n'\ '``` feature developer\n'\ 'rls-note-for-developer\n'\ '```\n'\ '``` feature dependency\n'\ 'rls-note-for-dependency\n'\ '```' actual_release_notes = extract_release_notes_with_defaults(text=text, ) self.assertEqual([ release_note_block_with_defaults( category_id=CATEGORY_FEATURE_ID, target_group_id=TARGET_GROUP_USER_ID, text='rls-note-for-user', ), release_note_block_with_defaults( category_id=CATEGORY_FEATURE_ID, target_group_id=TARGET_GROUP_OPERATOR_ID, text='rls-note-for-operator', ), release_note_block_with_defaults( category_id=CATEGORY_FEATURE_ID, target_group_id=TARGET_GROUP_DEVELOPER_ID, text='rls-note-for-developer', ), release_note_block_with_defaults( category_id=CATEGORY_FEATURE_ID, target_group_id=TARGET_GROUP_DEPENDENCY_ID, text='rls-note-for-dependency', ), ], actual_release_notes)
def test_rls_note_extraction_no_text(self): actual_release_notes = extract_release_notes_with_defaults(text=None, ) self.assertEqual(0, len(actual_release_notes)) actual_release_notes = extract_release_notes_with_defaults(text='', ) self.assertEqual(0, len(actual_release_notes))
def verify_no_release_note(text: str): actual_release_notes = extract_release_notes_with_defaults( text=text, ) self.assertEqual(0, len(actual_release_notes))