From fb3a7ec2dad5ed76cf2564d9306aebfcdd9ee11f Mon Sep 17 00:00:00 2001 From: Justin Warren Date: Sun, 22 Jan 2023 13:25:40 +1100 Subject: [PATCH] Added tests of comment merging. Tweaked comment merging to pass tests. --- src/fediblockhole/__init__.py | 4 +++ tests/test_merge_comments.py | 68 +++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 tests/test_merge_comments.py diff --git a/src/fediblockhole/__init__.py b/src/fediblockhole/__init__.py index c1f0c2a..67617d6 100755 --- a/src/fediblockhole/__init__.py +++ b/src/fediblockhole/__init__.py @@ -290,6 +290,10 @@ def merge_comments(oldcomment:str, newcomment:str) -> str: if oldcomment == newcomment or newcomment in ['', None]: return oldcomment + # If old comment is empty, just return the new one + if oldcomment in ['', None]: + return newcomment + # We want to skip duplicate fragments so we don't end up # re-concatenating the same strings every time there's an # update, causing the comment to grow without bound. diff --git a/tests/test_merge_comments.py b/tests/test_merge_comments.py new file mode 100644 index 0000000..a6ae8b1 --- /dev/null +++ b/tests/test_merge_comments.py @@ -0,0 +1,68 @@ +""" Test merging of comments +""" +import pytest + +from fediblockhole import merge_comments + +def test_merge_blank_comments(): + + oldcomment = '' + newcomment = '' + + merged_comment = merge_comments(oldcomment, newcomment) + + assert merged_comment == '' + +def test_merge_None_comments(): + + oldcomment = None + newcomment = None + + merged_comment = merge_comments(oldcomment, newcomment) + + assert merged_comment == '' + +def test_merge_oldstr_newNone(): + + oldcomment = 'fred, bibble' + newcomment = None + + merged_comment = merge_comments(oldcomment, newcomment) + + assert merged_comment == 'fred, bibble' + +def test_merge_oldempty_newcomment(): + + oldcomment = '' + newcomment = 'fred, bibble' + + merged_comment = merge_comments(oldcomment, newcomment) + + assert merged_comment == 'fred, bibble' + +def test_merge_oldNone_newcomment(): + + oldcomment = None + newcomment = 'fred, bibble' + + merged_comment = merge_comments(oldcomment, newcomment) + + assert merged_comment == 'fred, bibble' + +def test_merge_two_different(): + + oldcomment = 'happy, medium, spinning' + newcomment = 'fred, bibble' + + merged_comment = merge_comments(oldcomment, newcomment) + + assert merged_comment == 'happy, medium, spinning, fred, bibble' + +def test_merge_overlaps(): + + oldcomment = 'happy, medium, spinning' + newcomment = 'fred, medium, bibble, spinning' + + merged_comment = merge_comments(oldcomment, newcomment) + + assert merged_comment == 'happy, medium, spinning, fred, bibble' \ No newline at end of file