def explorer_v(cls, context, *args, **kwargs): kwargs["sort"] = kwargs.get("sort", [("id", -1)]) if context: kwargs.update(context=context) return appier.lazy_dict( model=cls, kwargs=kwargs, entities=appier.lazy(lambda: cls.find(*args, **kwargs)), page=appier.lazy(lambda: cls.paginate(*args, **kwargs)))
def paid_v(cls, *args, **kwargs): kwargs["sort"] = kwargs.get("sort", [("s_id", -1)]) kwargs.update(s_status = "paid") return appier.lazy_dict( model = cls, kwargs = kwargs, entities = appier.lazy(lambda: cls.find(*args, **kwargs)), page = appier.lazy(lambda: cls.paginate(*args, **kwargs)) )
def tokens_v(self, *args, **kwargs): cls = oauth_token.OAuthToken kwargs["sort"] = kwargs.get("sort", [("id", -1)]) kwargs.update(client=self.id) return appier.lazy_dict( model=cls, kwargs=kwargs, entities=appier.lazy(lambda: cls.find(*args, **kwargs)), page=appier.lazy(lambda: cls.paginate(*args, **kwargs)))
def labels_v(self, *args, **kwargs): from . import label kwargs["sort"] = kwargs.get("sort", [("id", -1)]) kwargs.update(category=self.name) return appier.lazy_dict( model=label.Label, kwargs=kwargs, entities=appier.lazy(lambda: label.Label.find(*args, **kwargs)), page=appier.lazy(lambda: label.Label.paginate(*args, **kwargs)))
def accounts_v(self, *args, **kwargs): from appier_extras.parts.admin.models import account cls = account.Account kwargs["sort"] = kwargs.get("sort", [("id", -1)]) kwargs.update(roles={"$in": [self.id]}) return appier.lazy_dict( model=cls, kwargs=kwargs, entities=appier.lazy(lambda: cls.find(*args, **kwargs)), page=appier.lazy(lambda: cls.paginate(*args, **kwargs)))
def tokens_v(self, *args, **kwargs): cls = oauth_token.OAuthToken kwargs["sort"] = kwargs.get("sort", [("id", -1)]) kwargs.update(client = self.id) return appier.lazy_dict( model = cls, kwargs = kwargs, entities = appier.lazy(lambda: cls.find(*args, **kwargs)), page = appier.lazy(lambda: cls.paginate(*args, **kwargs)) )
def explorer_v(cls, access_token, refresh_token, *args, **kwargs): kwargs["sort"] = kwargs.get("sort", [("id", -1)]) if access_token: kwargs.update(access_token = access_token) if refresh_token: kwargs.update(refresh_token = refresh_token) return appier.lazy_dict( model = cls, kwargs = kwargs, entities = appier.lazy(lambda: cls.find(*args, **kwargs)), page = appier.lazy(lambda: cls.paginate(*args, **kwargs)) )
def enter_actions_v(self, *args, **kwargs): from .actions import enter kwargs["sort"] = kwargs.get("sort", [("timestamp", -1)]) kwargs.update(entity=self.identifier) return appier.lazy_dict( model=enter.EnterAction, kwargs=kwargs, entities=appier.lazy( lambda: enter.EnterAction.find(*args, **kwargs)), page=appier.lazy( lambda: enter.EnterAction.paginate(*args, **kwargs)))
def artifacts_v(self, *args, **kwargs): from . import artifact kwargs["sort"] = kwargs.get("sort", [("timestamp", -1)]) kwargs.update(package = self.name) return appier.lazy_dict( model = artifact.Artifact, kwargs = kwargs, entities = appier.lazy(lambda: artifact.Artifact.find(*args, **kwargs)), page = appier.lazy(lambda: artifact.Artifact.paginate(*args, **kwargs)), names = ["id", "version", "branch", "timestamp"] )
def pending_v(cls, *args, **kwargs): kwargs["sort"] = kwargs.get("sort", [("s_id", -1)]) kwargs.update( s_status = "paid", s_fulfillment = {"$in": [None, ""]}, created = {"$gt" : time.time() - 7776000} ) return appier.lazy_dict( model = cls, kwargs = kwargs, entities = appier.lazy(lambda: cls.find(*args, **kwargs)), page = appier.lazy(lambda: cls.paginate(*args, **kwargs)) )
def test_naming(self): struct = appier.lazy_dict() struct["first"] = appier.lazy(lambda: 1) self.assertEqual(isinstance(struct.__getitem__("first", True), appier.lazy), True) self.assertEqual(struct["first"], 1)
def explorer_v( cls, s_name, s_gateway, reference_id, *args, **kwargs ): kwargs["sort"] = kwargs.get("sort", [("s_id", -1)]) if s_name: kwargs.update(s_name = s_name) if s_gateway: kwargs.update(s_gateway = s_gateway) if reference_id: kwargs.update(reference_id = reference_id) return appier.lazy_dict( model = cls, kwargs = kwargs, entities = appier.lazy(lambda: cls.find(*args, **kwargs)), page = appier.lazy(lambda: cls.paginate(*args, **kwargs)) )
def test_concrete(self): struct = appier.lazy_dict() struct["first"] = appier.lazy(lambda: 1) struct["second"] = 2 self.assertEqual(isinstance(struct.__getitem__("first", True), appier.lazy), True) self.assertEqual(struct["first"], 1) self.assertEqual(isinstance(struct.__getitem__("second", True), int), True) self.assertEqual(struct["second"], 2)
def test_gather_errors(self): def raiser(): raise appier.OperationalError(message = "hello") struct = appier.lazy_dict( first = appier.lazy(lambda: raiser()), second = appier.lazy(lambda: 2), ) errors = appier.gather_errors(struct) self.assertEqual(errors, dict(first = ["hello"])) struct.__getitem__("first", force = True)._value = 1 errors = appier.gather_errors(struct) self.assertEqual(errors, dict(first = ["hello"])) struct.__getitem__("first", force = True)._value = 1 errors = appier.gather_errors(struct, resolve = False) self.assertEqual(errors, dict())