mirror of
https://github.com/Dasharo/roadmapper.git
synced 2026-06-13 19:16:15 -07:00
Add roadmap generation for milestone text_alignment
This commit is contained in:
@@ -7,6 +7,7 @@ from PIL import Image, ImageChops
|
||||
from src.tests.roadmap_generators import roadmap_generator
|
||||
from src.tests.roadmap_generators.colour_theme import ColourTheme
|
||||
from src.tests.roadmap_generators.colour_theme_extensive import ColourThemeExtensive
|
||||
from src.tests.roadmap_generators.milestone_text_alignment import MilestoneTextAlignment
|
||||
from src.tests.roadmap_generators.roadmap_abc import RoadmapABC
|
||||
|
||||
dir_for_examples = "example_roadmaps"
|
||||
@@ -80,16 +81,16 @@ def generate_and_compare_roadmap_for_specific_platform(operating_system, roadmap
|
||||
class TestCompareGeneratedRoadmaps:
|
||||
|
||||
@pytest.mark.ubuntu
|
||||
@pytest.mark.parametrize("roadmap_class_to_test", [ColourThemeExtensive, ColourTheme])
|
||||
@pytest.mark.parametrize("roadmap_class_to_test", [ColourThemeExtensive, ColourTheme, MilestoneTextAlignment])
|
||||
def test_compare_generated_roadmaps_on_ubuntu(self, roadmap_class_to_test, operating_system_ubuntu):
|
||||
generate_and_compare_roadmap_for_specific_platform(operating_system_ubuntu, roadmap_class_to_test)
|
||||
|
||||
@pytest.mark.macos
|
||||
@pytest.mark.parametrize("roadmap_class_to_test", [ColourThemeExtensive, ColourTheme])
|
||||
@pytest.mark.parametrize("roadmap_class_to_test", [ColourThemeExtensive, ColourTheme, MilestoneTextAlignment])
|
||||
def test_compare_generated_roadmaps_on_macos(self, roadmap_class_to_test, operating_system_macos):
|
||||
generate_and_compare_roadmap_for_specific_platform(operating_system_macos, roadmap_class_to_test)
|
||||
|
||||
@pytest.mark.windows
|
||||
@pytest.mark.parametrize("roadmap_class_to_test", [ColourThemeExtensive, ColourTheme])
|
||||
@pytest.mark.parametrize("roadmap_class_to_test", [ColourThemeExtensive, ColourTheme, MilestoneTextAlignment])
|
||||
def test_compare_generated_roadmaps_on_windows(self, roadmap_class_to_test, operating_system_windows):
|
||||
generate_and_compare_roadmap_for_specific_platform(operating_system_windows, roadmap_class_to_test)
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
import sys
|
||||
|
||||
from src.roadmapper.roadmap import Roadmap
|
||||
from src.roadmapper.timelinemode import TimelineMode
|
||||
from src.tests.roadmap_generators.roadmap_abc import RoadmapABC
|
||||
|
||||
|
||||
class MilestoneTextAlignment(RoadmapABC):
|
||||
|
||||
def generate_and_save_as(
|
||||
self,
|
||||
file_name: str = "example.png",
|
||||
) -> None:
|
||||
roadmap: Roadmap = self.generate()
|
||||
roadmap.draw()
|
||||
roadmap.save(file_name)
|
||||
|
||||
def generate(self) -> Roadmap:
|
||||
width = 1200
|
||||
height = 1000
|
||||
auto_height = True
|
||||
mode = TimelineMode.MONTHLY
|
||||
start_date = "2023-01-01"
|
||||
number_of_items = 12
|
||||
show_generic_dates = False
|
||||
|
||||
roadmap = Roadmap(width, height, auto_height=auto_height, show_marker=False)
|
||||
|
||||
roadmap.set_title("2023 Milestone Alignment")
|
||||
roadmap.set_subtitle("GodZone Corporation")
|
||||
|
||||
roadmap.set_timeline(
|
||||
mode=mode,
|
||||
start=start_date,
|
||||
number_of_items=number_of_items,
|
||||
show_generic_dates=show_generic_dates,
|
||||
)
|
||||
|
||||
group = roadmap.add_group("Milestone Alignment", text_alignment="left")
|
||||
# Group containing each version of left align milsetone text
|
||||
left_task = group.add_task(
|
||||
"Left align", start_date, "2023-12-31"
|
||||
)
|
||||
left_task.add_milestone(
|
||||
"default left", "2023-05-01", text_alignment="left"
|
||||
)
|
||||
left_task.add_milestone(
|
||||
"percent left", "2023-07-01", text_alignment="left:75%"
|
||||
)
|
||||
left_task.add_milestone(
|
||||
"units left", "2023-11-01", text_alignment="left:10"
|
||||
)
|
||||
|
||||
# Group containing each version of right align milestone text
|
||||
right_task = group.add_task(
|
||||
"Right align", start_date, "2023-12-31"
|
||||
)
|
||||
right_task.add_milestone(
|
||||
"default right", "2023-02-01", text_alignment="right"
|
||||
)
|
||||
right_task.add_milestone(
|
||||
"percent right", "2023-05-01", text_alignment="right:75%"
|
||||
)
|
||||
right_task.add_milestone(
|
||||
"units right", "2023-08-01", text_alignment="right:10"
|
||||
)
|
||||
|
||||
# Group containing each version of none align milestone text
|
||||
center_task = group.add_task(
|
||||
"Center align", start_date, "2023-12-31"
|
||||
)
|
||||
center_task.add_milestone(
|
||||
"not specified (center)", "2023-02-15"
|
||||
)
|
||||
center_task.add_milestone(
|
||||
"percent right", "2023-02-15", text_alignment="center"
|
||||
)
|
||||
|
||||
|
||||
roadmap.set_footer("Generated by Roadmapper")
|
||||
|
||||
return roadmap
|
||||
|
||||
|
||||
def is_arg_given():
|
||||
return len(sys.argv) > 1
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if is_arg_given():
|
||||
example_name = sys.argv[1]
|
||||
ColourTheme().generate_and_save_as(file_name=example_name)
|
||||
else:
|
||||
ColourTheme.generate_and_save_as()
|
||||
@@ -4,11 +4,12 @@ from typing import Type
|
||||
|
||||
from src.tests.roadmap_generators.colour_theme import ColourTheme
|
||||
from src.tests.roadmap_generators.colour_theme_extensive import ColourThemeExtensive
|
||||
from src.tests.roadmap_generators.milestone_text_alignment import MilestoneTextAlignment
|
||||
from src.tests.roadmap_generators.roadmap_abc import RoadmapABC
|
||||
|
||||
file_ending = ".png"
|
||||
file_directory = ""
|
||||
all_roadmaps_to_generate: [RoadmapABC] = [ColourThemeExtensive, ColourTheme]
|
||||
all_roadmaps_to_generate: [RoadmapABC] = [ColourThemeExtensive, ColourTheme, MilestoneTextAlignment]
|
||||
|
||||
|
||||
def append_trailing_slash_if_necessary(directory) -> str:
|
||||
|
||||
Reference in New Issue
Block a user