fix: avoid date.today() as default arg

Having a function call as a default argument causes the function to be called
once (upon declaration) which leads to confusing behavior. Instead we pass in
`None` and call `date.today()` in the function body.
This commit is contained in:
Ethan Rooke 2024-11-12 18:40:42 -06:00
parent 278e481843
commit 8c3f8922a5
No known key found for this signature in database
GPG key ID: B2874A77049A5923
2 changed files with 13 additions and 8 deletions

View file

@ -620,7 +620,7 @@ class TechnicalDrawing(BaseSketchObject):
def __init__(
self,
designed_by: str = "build123d",
design_date: date = date.today(),
design_date: Optional[date] = None,
page_size: PageSize = PageSize.A4,
title: str = "Title",
sub_title: str = "Sub Title",
@ -633,6 +633,9 @@ class TechnicalDrawing(BaseSketchObject):
):
# pylint: disable=too-many-locals
if design_date is None:
design_date = date.today()
page_dim = TechnicalDrawing.page_sizes[page_size]
# Frame
frame_width = page_dim[0] - 2 * TechnicalDrawing.margin - 2 * nominal_text_size

View file

@ -30,6 +30,8 @@ import math
import unittest
from datetime import date
import pytest
from build123d import (
IN,
Axis,
@ -295,13 +297,13 @@ class ExtensionLineTestCase(unittest.TestCase):
)
class TestTechnicalDrawing(unittest.TestCase):
def test_basic_drawing(self):
drawing = TechnicalDrawing(design_date=date(2023, 9, 17), sheet_number=1)
bbox = drawing.bounding_box()
self.assertGreater(bbox.size.X, 280)
self.assertGreater(bbox.size.Y, 195)
self.assertGreater(len(drawing.faces()), 110)
@pytest.mark.parametrize("design_date", [date(2023, 9, 17), None])
def test_basic_drawing(design_date):
drawing = TechnicalDrawing(design_date=design_date, sheet_number=1)
bbox = drawing.bounding_box()
assert bbox.size.X > 280
assert bbox.size.Y > 195
assert len(drawing.faces()) > 110
if __name__ == "__main__":