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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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()
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()
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)
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)