insert_br_after_x_chars

This commit is contained in:
mrT23
2024-02-05 10:12:47 +02:00
parent 3f2a7869dd
commit 32e8ba331a
3 changed files with 20 additions and 16 deletions

View File

@ -325,7 +325,7 @@ class PRCodeSuggestions:
pr_body += "<table>"
header = f"Suggestions"
delta = 77
delta = 75
header += "&nbsp; " * delta
pr_body += f"""<thead><tr><th></th><th>{header}</th></tr></thead>"""
pr_body += """<tbody>"""

View File

@ -363,7 +363,7 @@ class PRDescription:
try:
pr_body += "<table>"
header = f"Relevant files"
delta = 77
delta = 75
# header += "&nbsp; " * delta
pr_body += f"""<thead><tr><th></th><th align="left">{header}</th></tr></thead>"""
pr_body += """<tbody>"""
@ -454,6 +454,10 @@ def insert_br_after_x_chars(text, x=70):
if i < len(lines) - 1:
words[-1] += "<br>"
def count_chars_without_html(string):
no_html_string = re.sub('<[^>]+>', '', string)
return len(no_html_string)
new_text = []
is_inside_code = False
current_length = 0
@ -461,12 +465,13 @@ def insert_br_after_x_chars(text, x=70):
is_saved_word = False
if word == "<code>" or word == "</code>" or word == "<li>" or word == "<br>":
is_saved_word = True
if word == "<code>":
if "<code>" in word:
is_inside_code = True
elif word == "</code>":
if "</code>" in word:
is_inside_code = False
if not is_saved_word and (current_length + len(word) > x):
len_word = count_chars_without_html(word)
if not is_saved_word and (current_length + len_word > x):
if is_inside_code:
new_text.append("</code><br><code>")
else:
@ -475,7 +480,7 @@ def insert_br_after_x_chars(text, x=70):
new_text.append(word + " ")
if not is_saved_word:
current_length += len(word) + 1 # Add 1 for the space
current_length += len_word + 1 # Add 1 for the space
if word == "<li>" or word == "<br>":
current_length = 0

View File

@ -98,13 +98,11 @@ class TestConvertToMarkdown:
class TestBR:
def test_br1(self):
file_change_description = '- Created a new class `ColorPaletteResourcesCollection` in the namespace `Avalonia.Themes.Fluent`.\n- The class extends `AvaloniaDictionary<ThemeVariant, ColorPaletteResources>` and implements `IResourceProvider`.\n- The class includes methods for handling theme variants, resource retrieval, owner management, and property change events.'
file_change_description = '- Imported `FilePatchInfo` and `EDIT_TYPE` from `pr_agent.algo.types` instead of `pr_agent.git_providers.git_provider`.'
file_change_description_br = insert_br_after_x_chars(file_change_description)
expected_output=('<li>Created a new class <code>ColorPaletteResourcesCollection</code> <br>in the namespace '
'<code>Avalonia.Themes.Fluent</code>.<br> <li> The class extends <code>AvaloniaDictionary'
'<ThemeVariant, <br>ColorPaletteResources></code> and implements <br><code>IResourceProvider'
'</code>.<br> <li> The class includes methods for handling theme variants, resource <br>'
'retrieval, owner management, and property change events.')
expected_output = ('<li>Imported <code>FilePatchInfo</code> and <code>EDIT_TYPE</code> from '
'<code>pr_agent.algo.types</code> instead <br>of '
'<code>pr_agent.git_providers.git_provider</code>.')
assert file_change_description_br == expected_output
# print("-----")
# print(file_change_description_br)
@ -113,9 +111,10 @@ class TestBR:
file_change_description = ('- Created a - new -class `ColorPaletteResourcesCollection ColorPaletteResourcesCollection '
'ColorPaletteResourcesCollection ColorPaletteResourcesCollection`')
file_change_description_br = insert_br_after_x_chars(file_change_description)
expected_output = ('<li>Created a - new -class <code>ColorPaletteResourcesCollection '
'<br>ColorPaletteResourcesCollection ColorPaletteResourcesCollection '
'<br>ColorPaletteResourcesCollection</code>')
expected_output = ('<li>Created a - new -class <code>ColorPaletteResourcesCollection </code><br><code>'
'ColorPaletteResourcesCollection ColorPaletteResourcesCollection <br>'
'ColorPaletteResourcesCollection</code>')
assert file_change_description_br == expected_output
# print("-----")
# print(file_change_description_br)
# print(file_change_description_br)