Example #1
0
 def test_blob(self):
     #default
     stub = mommy.make_one(Stub)
     self.assertEqual("default", stub.blob)
     #with some value
     stub = mommy.make_one(Stub, blob="foo")
     self.assertEqual("foo", stub.blob)
Example #2
0
 def test_text(self):
     #default
     stub = mommy.make_one(Stub)
     self.assertEqual("default", stub.text)
     #with some value
     stub = mommy.make_one(Stub, text="foo")
     self.assertEqual("foo", stub.text)
Example #3
0
 def test_boolean(self):
     #default
     stub = mommy.make_one(Stub)
     self.assertEqual(False, stub.b)
     #with some value
     stub = mommy.make_one(Stub, b=True)
     self.assertTrue(stub.b)
Example #4
0
 def test_string(self):
     #default
     stub = mommy.make_one(Stub)
     self.assertEqual("default", stub.string)
     #with some value
     stub = mommy.make_one(Stub, string="foo")
     self.assertEqual("foo", stub.string)
Example #5
0
 def test_integer_with_choices(self):
     #default: if there are choices, choose one of them
     stub = mommy.make_one(Stub)
     self.assertIn(stub.integer_choice, INTEGER_CHOICES)
     #with some value
     stub = mommy.make_one(Stub, integer_choice=INTEGER_CHOICES[1])
     self.assertEqual(INTEGER_CHOICES[1], stub.integer_choice)
Example #6
0
 def test_integer(self):
     #default
     stub = mommy.make_one(Stub)
     self.assertEqual(1, stub.integer)
     #with some value
     stub = mommy.make_one(Stub, integer=20)
     self.assertEqual(20, stub.integer)
Example #7
0
 def test_integer_repeated(self):
     #default
     stub = mommy.make_one(Stub)
     self.assertListEqual([1], stub.integer_repeated)
     #with some value
     stub = mommy.make_one(Stub, integer_repeated=[20, 21])
     self.assertListEqual([20, 21], stub.integer_repeated)
Example #8
0
 def test_float(self):
     #default
     stub = mommy.make_one(Stub)
     self.assertEqual(1.0, stub.float)
     #with some value
     stub = mommy.make_one(Stub, float=2.0)
     self.assertEqual(2.0, stub.float)
Example #9
0
    def test_success(self):
        site = mommy.make_one(Site)
        user = mommy.make_one(MainUser)
        ndb.put_multi([site, user])
        create_login = CreateLogin(user, site, 'hook')
        create_login.execute()
        login = create_login.result
        self.assertIsNotNone(login)
        self.assertEqual(LOGIN_CALL, login.status)
        self.assertEqual('hook', login.hook)
        db_login = Login.query().get()
        self.assertEqual(db_login.key, login.key)


        def neighbor(cls):
            DestinationsSearch.arc_class = cls
            search = DestinationsSearch(login)
            search.execute()
            self.assertEqual(1, len(search.result), cls)
            return search.result[0]

        n_user = neighbor(LoginUser)
        self.assertEqual(n_user.key, user.key)

        n_site = neighbor(LoginSite)
        self.assertEqual(n_site.key, site.key)

        login_status = neighbor(LoginStatusArc)
        self.assertEqual(LOGIN_CALL, login_status.label)
Example #10
0
    def test_success(self):
        site = mommy.make_one(Site)
        user = mommy.make_one(MainUser)
        ndb.put_multi([site, user])
        create_login = CreateLogin(user, site, 'hook')
        create_login.execute()
        login = create_login.result
        self.assertIsNotNone(login)
        self.assertEqual(LOGIN_CALL, login.status)
        self.assertEqual('hook', login.hook)
        db_login = Login.query().get()
        self.assertEqual(db_login.key, login.key)

        def neighbor(cls):
            DestinationsSearch.arc_class = cls
            search = DestinationsSearch(login)
            search.execute()
            self.assertEqual(1, len(search.result), cls)
            return search.result[0]

        n_user = neighbor(LoginUser)
        self.assertEqual(n_user.key, user.key)

        n_site = neighbor(LoginSite)
        self.assertEqual(n_site.key, site.key)

        login_status = neighbor(LoginStatusArc)
        self.assertEqual(LOGIN_CALL, login_status.label)
Example #11
0
 def test_integer_default(self):
     #default
     stub = mommy.make_one(Stub)
     self.assertEqual(INTEGER_DEFAULT, stub.integer_default)
     #with some value
     stub = mommy.make_one(Stub, integer_default=90)
     self.assertEqual(90, stub.integer_default)
Example #12
0
 def test_pickle(self):
     #default
     stub = mommy.make_one(Stub)
     self.assertEqual("default", stub.pickle)
     #with some value
     d = {"list": [1], "str": "foo2"}
     stub = mommy.make_one(Stub, pickle=d)
     self.assertDictEqual(d, stub.pickle)
Example #13
0
 def test_json(self):
     #default
     stub = mommy.make_one(Stub)
     self.assertEqual("default", stub.js)
     #with some value
     d = {"list": [1], "str": "foo"}
     stub = mommy.make_one(Stub, js=d)
     self.assertDictEqual(d, stub.js)
Example #14
0
 def test_local(self):
     #default
     stub = mommy.make_one(Stub)
     self.assertEqual(StubRelation(ppt=1), stub.local)
     #with some value
     local = StubRelation(ppt=5)
     stub = mommy.make_one(Stub, local=local)
     self.assertEqual(local, stub.local)
Example #15
0
 def test_key_str(self):
     #default
     stub = mommy.make_one(Stub)
     self.assertEqual(ndb.Key(StubRelation, 1), stub.relation_str)
     #with some value
     another_key = ndb.Key(StubRelation, 3)
     stub = mommy.make_one(Stub, relation_str=another_key)
     self.assertEqual(another_key, stub.relation_str)
Example #16
0
 def test_datetime(self):
     #default
     stub = mommy.make_one(Stub)
     self.assertEqual(NOW, stub.dtime)
     #with some value
     another_datetime = datetime.datetime(2012, 12, 27)
     stub = mommy.make_one(Stub, dtime=another_datetime)
     self.assertEqual(another_datetime, stub.dtime)
Example #17
0
 def test_time(self):
     #default
     stub = mommy.make_one(Stub)
     self.assertEqual(NOW.time(), stub.time)
     #with some value
     another_time = datetime.datetime(2012, 12, 27, 9, 9, 9).time()
     stub = mommy.make_one(Stub, time=another_time)
     self.assertEqual(another_time, stub.time)
Example #18
0
 def test_geo(self):
     #default
     stub = mommy.make_one(Stub)
     self.assertEqual(ndb.GeoPt(1, 1), stub.geo)
     #with some value
     another_geo = ndb.GeoPt(2.0, 2.0)
     stub = mommy.make_one(Stub, geo=another_geo)
     self.assertEqual(another_geo, stub.geo)
Example #19
0
 def test_structured(self):
     #default
     stub = mommy.make_one(Stub)
     self.assertEqual(StubRelation(ppt=1), stub.structured)
     #with some value
     structured = StubRelation(ppt=5)
     stub = mommy.make_one(Stub, structured=structured)
     self.assertEqual(structured, stub.structured)
Example #20
0
 def test_date(self):
     #default
     stub = mommy.make_one(Stub)
     today = datetime.date.today()
     self.assertEqual(today, stub.dt)
     #with some value
     another_date = datetime.date(2012, 12, 27)
     stub = mommy.make_one(Stub, dt=another_date)
     self.assertEqual(another_date, stub.dt)
Example #21
0
 def test_spam(self):
     site = mommy.make_one(Site, domain='www.pswd.com')
     user = mommy.make_one(MainUser)
     ndb.put_multi([site, user])
     create_login = CreateLogin(user, site, 'hook')
     create_login.execute()
     # time.sleep(3)  # giving time because eventual consistency
     validate_cmd = ValidateLoginCall(site.key.id(), site.token, 'http://www.pswd.com/pswdless',
         user.key.id())
     self.assertRaises(CommandExecutionException, validate_cmd.execute)
     self.assertDictEqual({'spam': 'Spam not allowed'}, validate_cmd.errors)
Example #22
0
 def test_spam(self):
     site = mommy.make_one(Site, domain='www.pswd.com')
     user = mommy.make_one(MainUser)
     ndb.put_multi([site, user])
     create_login = CreateLogin(user, site, 'hook')
     create_login.execute()
     # time.sleep(3)  # giving time because eventual consistency
     validate_cmd = ValidateLoginCall(site.key.id(), site.token,
                                      'http://www.pswd.com/pswdless',
                                      user.key.id())
     self.assertRaises(CommandExecutionException, validate_cmd.execute)
     self.assertDictEqual({'spam': 'Spam not allowed'}, validate_cmd.errors)
Example #23
0
 def _assert_succes_with_status(self, status):
     site = mommy.make_one(Site, domain='www.pswd.com')
     user = mommy.make_one(MainUser)
     ndb.put_multi([site, user])
     create_login = CreateLogin(user, site, 'hook')
     create_login.execute()
     lg = Login.query().get()
     lg.status = status
     lg.put()
     validate_cmd = ValidateLoginCall(site.key.id(), site.token, 'http://www.pswd.com/pswdless',
         user.key.id())
     validate_cmd.execute()
     self.assertDictEqual({}, validate_cmd.errors)
Example #24
0
 def _assert_succes_with_status(self, status):
     site = mommy.make_one(Site, domain='www.pswd.com')
     user = mommy.make_one(MainUser)
     ndb.put_multi([site, user])
     create_login = CreateLogin(user, site, 'hook')
     create_login.execute()
     lg = Login.query().get()
     lg.status = status
     lg.put()
     validate_cmd = ValidateLoginCall(site.key.id(), site.token,
                                      'http://www.pswd.com/pswdless',
                                      user.key.id())
     validate_cmd.execute()
     self.assertDictEqual({}, validate_cmd.errors)
Example #25
0
    def test_success_after_one_hour(self):
        site = mommy.make_one(Site, domain='www.pswd.com')
        user = mommy.make_one(MainUser)
        ndb.put_multi([site, user])
        create_login = CreateLogin(user, site, 'hook')

        create_login.execute()
        lg = Login.query().get()
        lg.creation = datetime.now() - timedelta(hours=1, minutes=1)
        lg.put()

        validate_cmd = ValidateLoginCall(site.key.id(), site.token, 'http://www.pswd.com/pswdless',
            user.key.id())
        validate_cmd.execute()
        self.assertDictEqual({}, validate_cmd.errors)
Example #26
0
    def test_success_after_one_hour(self):
        site = mommy.make_one(Site, domain='www.pswd.com')
        user = mommy.make_one(MainUser)
        ndb.put_multi([site, user])
        create_login = CreateLogin(user, site, 'hook')

        create_login.execute()
        lg = Login.query().get()
        lg.creation = datetime.now() - timedelta(hours=1, minutes=1)
        lg.put()

        validate_cmd = ValidateLoginCall(site.key.id(), site.token,
                                         'http://www.pswd.com/pswdless',
                                         user.key.id())
        validate_cmd.execute()
        self.assertDictEqual({}, validate_cmd.errors)
Example #27
0
 def test_user_found(self, cmd_cls=FindUserById):
     user = mommy.make_one(MainUser)
     user.put()
     cmd = cmd_cls(str(user.key.id()))
     cmd.execute()
     self.assertDictEqual({}, cmd.errors)
     self.assertEqual(user.key, cmd.result.key)
Example #28
0
 def test_user_found(self, cmd_cls=FindUserById):
     user = mommy.make_one(MainUser)
     user.put()
     cmd = cmd_cls(str(user.key.id()))
     cmd.execute()
     self.assertDictEqual({}, cmd.errors)
     self.assertEqual(user.key, cmd.result.key)
Example #29
0
 def _assert_hook_error(self, hook, error_dct):
     site = mommy.make_one(Site, domain='www.pswdless.appspot.com')
     site.put()
     cmd = self._buildCertifyCredentials(site, hook)  # ends with co instead of com
     self.assertRaises(CommandExecutionException, cmd.execute)
     self.assertIsNone(cmd.result)
     self.assertDictEqual(error_dct, cmd.errors)
Example #30
0
 def _assert_hook_error(self, hook, error_dct):
     site = mommy.make_one(Site, domain='www.pswdless.appspot.com')
     site.put()
     cmd = self._buildCertifyCredentials(
         site, hook)  # ends with co instead of com
     self.assertRaises(CommandExecutionException, cmd.execute)
     self.assertIsNone(cmd.result)
     self.assertDictEqual(error_dct, cmd.errors)
Example #31
0
    def test_success(self):
        site = mommy.make_one(Site, domain='appspot.com')
        user = mommy.make_one(MainUser)
        ndb.put_multi([site, user])
        login.setup_locale = Mock()
        setup_task = facade.setup_login_task(
            str(site.key.id()),
            site.token,
            'http://pswdless.appspot.com/return',
            str(user.key.id()),
            lang='pt_BR')
        task_obj = Mock()
        task_cls = Mock(return_value=task_obj)
        login.TaskQueueCommand = task_cls
        task_obj.commit = Mock(return_value=[])

        setup_task.execute()
        lg = Login.query().get()
        login.setup_locale.assert_called_once_with('pt_BR')
        self.assertIsNotNone(lg)
        task_cls.assert_called_once_with(settings.TASK_HERO,
                                         router.to_path(task.send_login_email),
                                         params={
                                             'login_id': str(lg.key.id()),
                                             'lang': 'pt_BR'
                                         },
                                         countdown=4)
        task_obj.set_up.assert_called_once_with()
        task_obj.do_business.assert_called_once_with()
        task_obj.commit.assert_called_once_with()

        def neighbor(cls):
            DestinationsSearch.arc_class = cls  # To do: removing this because can cause side effects
            search = DestinationsSearch(lg)
            search.execute()
            self.assertEqual(1, len(search.result), cls)
            return search.result[0]

        n_user = neighbor(LoginUser)
        self.assertEqual(n_user.key, user.key)

        n_site = neighbor(LoginSite)
        self.assertEqual(n_site.key, site.key)

        login_status = neighbor(LoginStatusArc)
        self.assertEqual(LOGIN_CALL, login_status.label)
Example #32
0
 def test_success(self):
     site = mommy.make_one(Site, domain='www.pswdless.appspot.com')
     site.put()
     cmd = CertifySiteCredentials(str(site.key.id()), site.token,
         r'http://www.pswdless.appspot.com/foo?b=2&p=5')
     cmd.execute()
     self.assertIsNotNone(cmd.result, str(cmd.errors))
     self.assertEqual(site.key, cmd.result.key)
Example #33
0
 def test_id_wrong_token(self):
     site = mommy.make_one(Site, domain='www.pswdless.appspot.com')
     site.put()
     cmd = CertifySiteCredentials(str(site.key.id()), site.token + "foo",
         r'http://www.pswdless.appspot.com/foo?b=2&p=5')
     self.assertRaises(CommandExecutionException, cmd.execute)
     self.assertIsNone(cmd.result)
     self.assertDictEqual({'site': 'Wrong site id or token'}, cmd.errors)
Example #34
0
 def test_success(self):
     site = mommy.make_one(Site, domain='www.pswdless.appspot.com')
     site.put()
     cmd = CertifySiteCredentials(
         str(site.key.id()), site.token,
         r'http://www.pswdless.appspot.com/foo?b=2&p=5')
     cmd.execute()
     self.assertIsNotNone(cmd.result, str(cmd.errors))
     self.assertEqual(site.key, cmd.result.key)
Example #35
0
 def test_id_wrong_token(self):
     site = mommy.make_one(Site, domain='www.pswdless.appspot.com')
     site.put()
     cmd = CertifySiteCredentials(
         str(site.key.id()), site.token + "foo",
         r'http://www.pswdless.appspot.com/foo?b=2&p=5')
     self.assertRaises(CommandExecutionException, cmd.execute)
     self.assertIsNone(cmd.result)
     self.assertDictEqual({'site': 'Wrong site id or token'}, cmd.errors)
Example #36
0
 def test_success(self):
     domain = 'pswd.com'
     site = mommy.make_one(Site, domain=domain)
     site.put()
     validate_cmd = ValidateLoginCall(site.key.id(), site.token, 'http://www.pswd.com/pswdless',
         user_email='*****@*****.**')
     validate_cmd.execute()
     self.assertIsNotNone(validate_cmd.user, validate_cmd.errors)
     self.assertIsNotNone(validate_cmd.site, validate_cmd.errors)
     self.assertEqual(site.key, validate_cmd.site.key, validate_cmd.errors)
Example #37
0
 def test_success(self):
     domain = 'pswd.com'
     site = mommy.make_one(Site, domain=domain)
     site.put()
     validate_cmd = ValidateLoginCall(site.key.id(),
                                      site.token,
                                      'http://www.pswd.com/pswdless',
                                      user_email='*****@*****.**')
     validate_cmd.execute()
     self.assertIsNotNone(validate_cmd.user, validate_cmd.errors)
     self.assertIsNotNone(validate_cmd.site, validate_cmd.errors)
     self.assertEqual(site.key, validate_cmd.site.key, validate_cmd.errors)
Example #38
0
    def test_success(self):
        site = mommy.make_one(Site, domain='appspot.com')
        user = mommy.make_one(MainUser)
        ndb.put_multi([site, user])
        login.setup_locale = Mock()
        setup_task = facade.setup_login_task(str(site.key.id()), site.token, 'http://pswdless.appspot.com/return',
            str(user.key.id()), lang='pt_BR')
        task_obj = Mock()
        task_cls = Mock(return_value=task_obj)
        login.TaskQueueCommand = task_cls
        task_obj.commit = Mock(return_value=[])

        setup_task.execute()
        lg = Login.query().get()
        login.setup_locale.assert_called_once_with('pt_BR')
        self.assertIsNotNone(lg)
        task_cls.assert_called_once_with(settings.TASK_HERO, router.to_path(task.send_login_email),
                                         params={'login_id': str(lg.key.id()), 'lang': 'pt_BR'}, countdown=4)
        task_obj.set_up.assert_called_once_with()
        task_obj.do_business.assert_called_once_with()
        task_obj.commit.assert_called_once_with()

        def neighbor(cls):
            DestinationsSearch.arc_class = cls  # To do: removing this because can cause side effects
            search = DestinationsSearch(lg)
            search.execute()
            self.assertEqual(1, len(search.result), cls)
            return search.result[0]

        n_user = neighbor(LoginUser)
        self.assertEqual(n_user.key, user.key)

        n_site = neighbor(LoginSite)
        self.assertEqual(n_site.key, site.key)

        login_status = neighbor(LoginStatusArc)
        self.assertEqual(LOGIN_CALL, login_status.label)
Example #39
0
 def test_success(self):
     login = mommy.make_one(Login, status=LOGIN_CALL)
     login.put()
     cmd = ChangeLoginStatus(login.key.id(), LOGIN_EMAIL)
     cmd.execute()
     modified_login = cmd.result
     self.assertEqual(login.key, modified_login.key)
     login_db = login.key.get()
     self.assertEqual(LOGIN_EMAIL, login_db.status)
     search = LoginStatusArcSearch(login)
     search.execute()
     self.assertEqual(1, len(search.result))
     login_status = search.result[0]
     self.assertIsInstance(login_status, LoginStatus)
     self.assertEqual(LOGIN_EMAIL, login_status.label)
Example #40
0
 def test_success(self):
     login = mommy.make_one(Login, status=LOGIN_CALL)
     login.put()
     cmd = ChangeLoginStatus(login.key.id(), LOGIN_EMAIL)
     cmd.execute()
     modified_login = cmd.result
     self.assertEqual(login.key, modified_login.key)
     login_db = login.key.get()
     self.assertEqual(LOGIN_EMAIL, login_db.status)
     search = LoginStatusArcSearch(login)
     search.execute()
     self.assertEqual(1, len(search.result))
     login_status = search.result[0]
     self.assertIsInstance(login_status, LoginStatus)
     self.assertEqual(LOGIN_EMAIL, login_status.label)
Example #41
0
    def test_success(self):
        # Mocks
        site = Site(domain='pswdless.appspot.com', token='t')
        email = '*****@*****.**'
        user = mommy.make_one(MainUser, email=email)
        login = Login(status=LOGIN_CALL,
                      hook='https://pswdless.appspot.com/foo')
        ndb.put_multi([site, user, login])

        # Arcs
        ndb.put_multi([
            LoginUser(origin=login.key, destination=user.key),
            LoginSite(origin=login.key, destination=site.key)
        ])

        callback_flag = Mock()

        def callback(*args):
            callback_flag()
            zipped = zip([login, site, user], args)
            for expected, current in zipped:
                self.assertEqual(type(expected), type(current))
                self.assertEqual(expected.key, current.key)

        send_email = facade.send_login_email(str(login.key.id()), callback)
        send_email.execute()

        # Login changes
        login_db = login.key.get()
        self.assertEqual(LOGIN_EMAIL, login_db.status)
        search = SingleLoginStatusArcSearch(login)
        login_status = search()
        self.assertIsInstance(login_status, LoginStatus)
        self.assertEqual(LOGIN_EMAIL, login_status.label)

        # Site User creation
        user_search = SingleSiteUserSearch(site)
        db_user = user_search()
        self.assertEqual(user.key, db_user.key)

        # Callback call
        callback_flag.assert_called_once_with()
Example #42
0
    def test_success(self):
        # Mocks
        site = Site(domain='pswdless.appspot.com', token='t')
        email = '*****@*****.**'
        user = mommy.make_one(MainUser, email=email)
        login = Login(status=LOGIN_CALL, hook='https://pswdless.appspot.com/foo')
        ndb.put_multi([site, user, login])

        # Arcs
        ndb.put_multi(
            [LoginUser(origin=login.key, destination=user.key),
             LoginSite(origin=login.key, destination=site.key)])

        callback_flag = Mock()

        def callback(*args):
            callback_flag()
            zipped = zip([login, site, user], args)
            for expected, current in zipped:
                self.assertEqual(type(expected), type(current))
                self.assertEqual(expected.key, current.key)

        send_email = facade.send_login_email(str(login.key.id()), callback)
        send_email.execute()

        # Login changes
        login_db = login.key.get()
        self.assertEqual(LOGIN_EMAIL, login_db.status)
        search = SingleLoginStatusArcSearch(login)
        login_status = search()
        self.assertIsInstance(login_status, LoginStatus)
        self.assertEqual(LOGIN_EMAIL, login_status.label)

        # Site User creation
        user_search = SingleSiteUserSearch(site)
        db_user = user_search()
        self.assertEqual(user.key, db_user.key)

        # Callback call
        callback_flag.assert_called_once_with()
Example #43
0
 def test_salvar_livro(self):
     livro = mommy.make_one(Book, title='App Engine e Python')
     livro.put()
     livros_em_bd = livro.query_by_creation().fetch()
     self.assertListEqual([livro], livros_em_bd)
     self.assertEqual('App Engine e Python', livros_em_bd[0].title)
Example #44
0
 def teste_salvar_peca(self):
     peca = mommy.make_one(Peca, title='Testando Teste')
     peca.put()
     pecas_em_bd = peca.query_by_creation().fetch()
     self.assertListEqual([peca], pecas_em_bd)
     self.assertEqual('Testando Teste', pecas_em_bd[0].title)