def testGetNamespaces(self):
   """Test for get_namespaces."""
   self.assertEqual(['', 'fun', 'ns1'], metadata.get_namespaces())
   self.assertEqual(['fun', 'ns1'], metadata.get_namespaces('a'))
   self.assertEqual(['', 'fun'], metadata.get_namespaces('', 'g'))
   self.assertEqual(['fun'], metadata.get_namespaces('f', 'g'))
   self.assertEqual([], metadata.get_namespaces('f', ''))
Esempio n. 2
0
def send_daily_birthday_messages():
    """
    It goes through all the namespaces making queries to the datastore for
    users who have the same birth day and birth month as today
    """
    today = datetime.now()
    current_namespace = namespace_manager.get_namespace()
    for namespace in get_namespaces():
        # Forget about the default empty namespace
        if namespace:
            logging.debug("Birthdays for today [%s]-[%s] namespace [%s]",
                          today.month, today.day, namespace)
            namespace_manager.set_namespace(namespace)
            #Clear the cached list for the day
            memcache.delete('birthdays')
            #Go through every birthday celebrant
            for celebrant in get_birthdays(month=today.month, day=today.day):
                logging.info("Found a birthday for today! %s", celebrant.email)
                #Schedule sending the email
                deferred.defer(send_birthday_message,
                               celebrant,
                               _queue="mail-queue")
    #Restore to the original namespace
    namespace_manager.set_namespace(current_namespace)
    return 'Birthday messages were scheduled for today'
Esempio n. 3
0
def delete_all_entities():
    for namespace in get_namespaces():
        set_namespace(namespace)
        for kind in get_kinds():
            if kind.startswith('__'):
                continue
            while True:
                data = Query(kind=kind, keys_only=True).Get(200)
                if not data:
                    break
                Delete(data)
Esempio n. 4
0
def delete_all_entities():
    from google.appengine.api.datastore import Delete, Query
    from google.appengine.ext.db.metadata import get_kinds, get_namespaces
    from google.appengine.api.namespace_manager import set_namespace

    for namespace in get_namespaces():
        set_namespace(namespace)
        for kind in get_kinds():
            if kind.startswith('__'):
                continue
            while True:
                data = Query(kind=kind, keys_only=True).Get(200)
                if not data:
                    break
                Delete(data)
Esempio n. 5
0
def delete_all_entities():
    from google.appengine.api.datastore import Delete, Query
    from google.appengine.ext.db.metadata import get_kinds, get_namespaces
    from google.appengine.api.namespace_manager import set_namespace

    for namespace in get_namespaces():
        set_namespace(namespace)
        for kind in get_kinds():
            if kind.startswith('__'):
                continue
            while True:
                data = Query(kind=kind, keys_only=True).Get(200)
                if not data:
                    break
                Delete(data)
Esempio n. 6
0
def select_namespaces2run():
    return get_namespaces()