def setUp(self): super(TestAuth, self).setUp() self.user = UserFactory() self.user2 = UserFactory() self.other_company = self.user2.company self.p = DefaultProposalFactory(company=self.other_company, client=None)
def setUp(self): super(TrialEndTest, self).setUp() cutoff = datetime.datetime.utcnow() - datetime.timedelta( days=flask.current_app.config["TRIAL_LENGTH"] - 4) self.u = UserFactory(is_admin=True) self.u.company.created_at = cutoff UserFactory(is_admin=True) u2 = UserFactory(is_admin=True, trial_end_email_sent=True) u2.company.created_at = cutoff # u3 has a sub u3 = UserFactory(is_admin=True) ChargebeeSubscriptionCacheFactory(company=u3.company) u3.company.created_at = cutoff
def setUp(self): super().setUp() self.proposal1 = DefaultProposalFactory() self.proposal2 = DefaultProposalFactory() self.company2 = self.proposal2.company self.proposal1.company.users.append(UserFactory()) self.proposal2.company.users.append(UserFactory()) self.proposal1.company.clients.append(ClientFactory()) self.proposal2.company.clients.append(ClientFactory()) print(self.proposal1.company.users.all()) print(self.proposal2.company)
def test_resend_activation_mail_already_active(self): u = UserFactory(email=self.first_user["email"]) with mail.record_messages() as outbox: data, status_code = self.post_json( "/resend-activation-email", {"email": u.email} ) self.assertEqual(status_code, 400) self.assertEqual(len(outbox), 0)
def setUp(self): super(TestTemplates, self).setUp() self.user = UserFactory() self.waw = CompanyFactory() # share_uid needs to be one from dashboard/views list self.template = ProposalFactory( title="Template", share_uid="LQROVRA4Y", company=self.waw )
def setUp(self): super(TestLogin, self).setUp() self.user = UserFactory() self.url = "/tokens" self.post_data = { "password": "******", "email": self.user.email }
def test_resend_fail_already_active(self): with mail.record_messages() as outbox: email = UserFactory(company=self.user.company).email data, status_code = self.post_json( "/resend-invite", {"email": email}, user=self.user ) self.assertEqual(status_code, 400) self.assertEqual(len(outbox), 0)
def test_resend_fail_different_company(self): with mail.record_messages() as outbox: email = UserFactory(activation_token=b'1212').email data, status_code = self.post_json( "/resend-invite", {"email": email}, user=self.user ) self.assertEqual(status_code, 404) self.assertEqual(len(outbox), 0)
def test_case_insensitive_also_counts_as_used(self): upper = self.first_user["email"].upper() self.assertNotEqual(upper, self.first_user["email"]) UserFactory(email=upper) data, status_code = self.post_json("/users", self.first_user) self.assertEqual(status_code, 400) self.assertIn("in use", data["errors"]["email"][0])
def test_resend_activation_mail_ok(self): u = UserFactory(email=self.first_user["email"], activation_token=b'ere') with mail.record_messages() as outbox: data, status_code = self.post_json( "/resend-activation-email", {"email": u.email} ) self.assertEqual(status_code, 200) self.assertEqual(len(outbox), 1) self.assertIn("Activate", outbox[0].subject)
def test_disabled_user_dont_receive_mails(self): UserFactory(disabled=True, company=self.user.company) with mail.record_messages() as outbox: data = dict(blockUid=self.p.blocks.all()[0].uid, comment="look a comment", username="******") self.post_json(self.url, data) self.assertEqual(len(outbox), 1) self.assertSetEqual(outbox[0].send_to, {self.user.email})
def test_resend_ok(self): with mail.record_messages() as outbox: email = UserFactory(company=self.user.company, activation_token=b'1212').email data, status_code = self.post_json( "/resend-invite", {"email": email}, user=self.user ) self.assertEqual(status_code, 200) self.assertEqual(len(outbox), 1) self.assertIn("invited", outbox[0].subject)
def setUp(self): super(TestCompaniesUpdate, self).setUp() self.user = UserFactory() self.url = "/companies/branding" self.branding = { "fontHeaders": "Lato", "fontBody": "Tisa", "primaryColour": "#40C181", "bgColour": "#fff", "textColour": "#454B4F", }
def setUp(self): super(TestSharing, self).setUp() self.user = UserFactory() self.c = ClientFactory(company=self.user.company) self.p = ProposalFactory(company=self.user.company, client=self.c) self.url = "/proposals/{}/share".format(self.p.id) self.email_url = "/proposals/{}/share-email".format(self.p.id) self.sent_url = "/proposals/{}/mark-as-sent".format(self.p.id) self.email = { "emails": ["*****@*****.**", "*****@*****.**"], "from": "Me", "subject": "Hello", "body": "Yolo %s" % self.p.share_uid, }
def setUp(self): super().setUp() self.user = UserFactory() self.p = DefaultProposalFactory(company=self.user.company, client=None) self.shared = self.p.create_shared([]) self.url = "/shared/%s/sign" % self.p.share_uid self.data = { "signature": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA0MAAALoCAYAAAC6bC52", "name": "Bob", "userAgent": "user-agent" } self.sig_block = SharedBlock.from_proposal_block( Block(BlockType.Signature.value, ordering=10))
def run(self): """ The data here is as mix of randomized and hardcoded to capture a few corner cases (long names etc). """ db = setup.db for table in reversed(db.metadata.sorted_tables): db.engine.execute(table.delete()) company = CompanyFactory(name="A Cool Agency") user = UserFactory(id=None, company=company, email="*****@*****.**", is_admin=True) db.session.add(user) db.session.commit() # we generate proposals with share uids of the templates so we can test # duplication locally for i in range(4): title = "Proposal for %s" % f.company() p = DefaultProposalFactory(company=company, title=title, client=None, share_uid=PROPOSAL_TEMPLATES[i]["uid"]) db.session.add(p) s = SharedProposalFactory(proposal=p, version=1) db.session.add(s) # Super long title p = DefaultProposalFactory( company=company, title="long " * 12, client=None, ) db.session.add(p) db.session.commit()
def setUp(self): super().setUp() self.user = UserFactory() self.integration = ZapierIntegration(company_id=self.user.company.id) db.session.add(self.integration) db.session.commit()
def setUp(self): super(TestProposalUpdate, self).setUp() self.user = UserFactory() self.p = DefaultProposalFactory(company=self.user.company, client=None) self.now = datetime.utcnow().timestamp() + 1000
def setUp(self): super(TestSectionImporting, self).setUp() self.user = UserFactory() self.p1 = DefaultProposalFactory(company=self.user.company) self.p2 = DefaultProposalFactory(company=self.user.company)
def test_can_access_during_trial(self): user = UserFactory(activation_token=b'dasdsad', company=self.other_company) # any request should 200 response = self.get("/proposals/{}".format(self.p.id), user=user) self.assertEqual(response.status_code, 200)
def test_cant_do_anything_while_disabled(self): user = UserFactory(disabled=True, company=self.other_company) # any request should 403 response = self.get("/proposals/{}".format(self.p.id), user=user) self.assertEqual(response.status_code, 403)
def test_toggle_admin_other_company_fail(self): user = UserFactory() _, code = self.post_json(self.url % user.id, {}, user=self.user) self.assertEqual(code, 400) self.assertFalse(user.is_admin)
def test_email_used(self): UserFactory(email=self.first_user["email"]) data, status_code = self.post_json("/users", self.first_user) self.assertEqual(status_code, 400) self.assertIn("in use", data["errors"]["email"][0])
def test_disable_user_other_company_fail(self): user = UserFactory() _, code = self.post_json(self.url % user.id, {}, user=self.user) self.assertEqual(code, 400) self.assertFalse(user.disabled)
def setUp(self): super(TestToggleAdminUser, self).setUp() self.admin = UserFactory(is_admin=True) self.user = UserFactory(company=self.admin.company) self.url = "/toggle-user-admin/%d"
def setUp(self): super(TestDisableUser, self).setUp() self.admin = UserFactory(is_admin=True) self.user = UserFactory(company=self.admin.company) self.url = "/disable-user/%d"
def setUp(self): super(TestAccessSharedProposal, self).setUp() self.user = UserFactory() self.p = ProposalFactory(company=self.user.company) self.shared = SharedProposalFactory(proposal=self.p) self.url = "/shared/{}".format(self.p.share_uid)
def setUp(self): super(TestRequestResetPassword, self).setUp() self.user = UserFactory()
def setUp(self): super(TestMe, self).setUp() self.user = UserFactory() self.url = "/me"
def setUp(self): super(TestInvite, self).setUp() self.user = UserFactory()