feat: add initial support for positioning

Signed-off-by: Konstantin Fickel <mail@konstantinfickel.de>
This commit is contained in:
Konstantin Fickel 2025-06-22 18:02:42 +02:00
parent 28dc40ebf0
commit 0c61067db0
Signed by: kfickel
GPG key ID: A793722F9933C1A5
9 changed files with 186 additions and 3 deletions

View file

@ -0,0 +1,32 @@
from datetime import datetime
from src.streamer.localize.extract_datetime import extract_date_from_file_name
class TestExtractDateTime:
def test_extract_date_from_file_name_valid(self):
file_name = "20230101-123456 Some Text.md"
assert datetime(2023, 1, 1, 12, 34, 56) == extract_date_from_file_name(
file_name
)
def test_extract_date_from_file_name_invalid(self):
file_name = "invalid-file-name.md"
assert extract_date_from_file_name(file_name) is None
def test_extract_date_from_file_name_without_time(self):
file_name = "20230101 Some Text.md"
assert datetime(2023, 1, 1, 0, 0, 0) == extract_date_from_file_name(file_name)
def test_extract_date_from_file_name_short_time(self):
file_name = "20230101-1234 Some Text.md"
assert datetime(2023, 1, 1, 12, 34, 0) == extract_date_from_file_name(file_name)
def test_extract_date_from_file_name_empty_string(self):
file_name = ""
assert extract_date_from_file_name(file_name) is None
def test_extract_date_from_file_name_with_full_path(self):
file_name = "/path/to/20230101-123456 Some Text.md"
assert datetime(2023, 1, 1, 12, 34, 56) == extract_date_from_file_name(
file_name
)

46
test/test_localize.py Normal file
View file

@ -0,0 +1,46 @@
from streamer.localize.localize import localize_stream_file
from streamer.localize.localized_shard import LocalizedShard
from streamer.localize.repostory_configuration import (
Dimension,
Marker,
RepositoryConfiguration,
)
from streamer.parse.shard import Shard, StreamFile
repository_configuration = RepositoryConfiguration(
dimensions={
"project": Dimension(
display_name="Project",
comment="GTD Project that is being worked on",
propagate=True,
),
"moment": Dimension(
display_name="Moment",
comment="Timestamp this entry was created at",
propagate=True,
),
},
markers={
"streamer": Marker(display_name="Streamer", dimension="project"),
"jobhunting": Marker(display_name="JobHunting", dimension="project"),
},
)
class TestExtractDateTime:
def test_project_simple_stream_file(self):
stream_file = StreamFile(
filename="20250622-121000 Test File.md",
shard=Shard(start_line=1, end_line=1, markers=["Streamer"]),
)
assert localize_stream_file(
stream_file, repository_configuration
) == LocalizedShard(
markers=["Streamer"],
tags=[],
start_line=1,
end_line=1,
children=[],
location={"moment": "2025-06-22T12:10:00", "project": "streamer"},
)