rjango 0.1.1

A full-stack Rust backend framework inspired by Django
Documentation
use sea_orm::{EntityTrait, Select};

/// Django's default manager entry point for entity queries.
pub trait Manager: EntityTrait {
    fn objects() -> Select<Self> {
        Self::find()
    }
}

#[cfg(test)]
mod tests {
    use super::Manager;
    use sea_orm::{DbBackend, QueryTrait, Select};

    mod mock_entity {
        use sea_orm::entity::prelude::*;

        #[sea_orm::model]
        #[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel)]
        #[sea_orm(table_name = "widgets")]
        pub struct Model {
            #[sea_orm(primary_key)]
            pub id: i32,
            pub name: String,
        }

        impl ActiveModelBehavior for ActiveModel {}
    }

    impl Manager for mock_entity::Entity {}

    #[test]
    fn manager_objects_returns_entity_select() {
        let query: Select<mock_entity::Entity> = mock_entity::Entity::objects();
        let sql = query.build(DbBackend::Sqlite).to_string();

        assert!(sql.contains("SELECT"), "expected SELECT query, got: {sql}");
        assert!(
            sql.contains("widgets"),
            "expected widgets table, got: {sql}"
        );
    }
}