Skip to content

Validate required config fields in BlogConfig #50

@davidpoblador

Description

@davidpoblador

Summary

The BlogConfig class doesn't validate that required fields (like base_url) are set before they're used. This can lead to cryptic errors when generating feeds or other operations that depend on these fields.

File to update

  • src/blogtuner/core/blog.py

Current behavior

  • base_url defaults to None in DEFAULT_BLOG_METADATA
  • No validation that it's set before use
  • Feed generation may fail or produce invalid URLs if base_url is missing

Proposed change

Add validation in BlogConfig.from_directory() or create a Pydantic validator:

from pydantic import model_validator

class BlogConfig(BaseModel):
    # ... existing fields ...
    
    @model_validator(mode='after')
    def validate_required_for_feeds(self) -> Self:
        if self.base_url is None:
            logger.warning("base_url is not set - feed generation will be disabled")
        return self

Or add explicit validation before feed generation:

def generate_feed(self):
    if self.base_url is None:
        raise ValueError("base_url must be set to generate feeds")
    # ... rest of feed generation

Priority

Low

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions