# -*- coding: utf-8 -*- #!/usr/bin/env python import inspect import pytest from apps.web.core.db import Searchable from apps.web.common.models import UserSearchable from testcase.providers import generate_dict from apps.web.common import models as common_models from apps.web.device import models as device_models from apps.web.user import models as user_models from apps.web.dealer import models as dealer_models from apps.web.agent import models as agent_models from apps.web.management import models as management_models from common import DisposableModel def get_model_classes(*mods): results = set() for mod in mods: for name, obj in inspect.getmembers(mod): if ( inspect.isclass(obj) and issubclass(obj, Searchable) and obj not in (Searchable, UserSearchable) #: no abstract model and not obj._meta.get('abstract', False)): results.add(obj) return list(results) @pytest.mark.parametrize("model", get_model_classes(common_models, device_models, user_models, dealer_models, agent_models, management_models)) def test_generate_models(model): with DisposableModel(model, **generate_dict(model)) as f: assert f