Skip to content
This repository has been archived by the owner on Oct 11, 2024. It is now read-only.

Commit

Permalink
Perform several bug fixes
Browse files Browse the repository at this point in the history
test.sh exits when pytest fails

temp_record initialisation applies default timestamp correct

enables providing local config.yaml via environment variable
  • Loading branch information
thought-tobi committed Apr 20, 2024
1 parent 5cb1094 commit 7fad7a0
Show file tree
Hide file tree
Showing 8 changed files with 17 additions and 14 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ package/
requirements.txt
htmlcov/
.coverage
config.local.yaml
4 changes: 4 additions & 0 deletions scripts/test.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
#!/bin/bash

set -e

echo "launching localstack container"
docker run -d --rm --name localstack -p 4566:4566 -p 4571:4571 localstack/localstack

Expand Down
3 changes: 2 additions & 1 deletion src/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,8 @@ def initialize_application() -> MoodTrackerApplication:
:return:
"""
# Load and register configuration object
configuration = ConfigurationProvider().get_configuration().register()
config_path = os.environ.get("CONFIG_PATH", "config.yaml")
configuration = ConfigurationProvider(config_path).get_configuration().register()
initialize_database(configuration)

application = MoodTrackerApplication(TOKEN)
Expand Down
2 changes: 1 addition & 1 deletion src/handlers/record_handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def create_temporary_record(user_id: int, user_repository: UserRepository):
# todo handle find_user() == None?
logging.info("Using user repository to find user: %s", user_repository)
metrics = user_repository.find_user(user_id).metrics
record = TempRecord(metrics=metrics)
record = TempRecord(metrics)

logging.info(f"Creating temporary record for user {user_id}: {record}")
# Store temporary record in the record ExpiringDict
Expand Down
12 changes: 6 additions & 6 deletions src/model/record.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,20 +25,20 @@ def __str__(self):
return f"user_id: {self.user_id}, data: {self.data}, timestamp: {self.timestamp.isoformat()}"


class TempRecord(BaseModel):
class TempRecord:
"""
Record that is being kept in the in-memory ExpiringDict while being completed.
Differs from the database Record in that it holds data on the Metrics that are being gathered.
"""

metrics: list[Metric]
timestamp: datetime | None
data: dict[str, int | None] = {}
timestamp: datetime
data: dict[str, int | None]

def __init__(self, **data):
super().__init__(**data)
def __init__(self, metrics: list[Metric]):
self.metrics = metrics
self.data = {metric.name: None for metric in self.metrics}
self.datetime = datetime.now()
self.timestamp = datetime.now()

def __str__(self):
return f"data: {self.data}, timestamp: {self.timestamp.isoformat()}"
Expand Down
2 changes: 2 additions & 0 deletions src/repository/db_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,5 @@ def init() -> (UserRepository, RecordRepository):
logging.basicConfig(level=logging.INFO)
user_id = int(os.getenv("USER_ID"))
user_repository, record_repository = init()
for record in record_repository.get_latest_records_for_user(user_id, 2):
print(record)
5 changes: 0 additions & 5 deletions terraform/dynamodb.tf
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
moved {
from = module.dynamodb_table
to = module.user
}

module "user" {
source = "terraform-aws-modules/dynamodb-table/aws"

Expand Down
2 changes: 1 addition & 1 deletion test/unit/model/test_record.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ def record() -> Record:
@pytest.fixture
def temp_record() -> TempRecord:
return TempRecord(
metrics=[
[
Metric(name="metric-1", user_prompt="metric user prompt", values={"1": 1}),
],
)
Expand Down

0 comments on commit 7fad7a0

Please sign in to comment.