コード例 #1
0
ファイル: test_auth.py プロジェクト: WeAreWizards/proppyweb
 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)
コード例 #2
0
 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
コード例 #3
0
    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)
コード例 #4
0
ファイル: test_users.py プロジェクト: WeAreWizards/proppyweb
 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)
コード例 #5
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
     )
コード例 #6
0
ファイル: test_users.py プロジェクト: WeAreWizards/proppyweb
 def setUp(self):
     super(TestLogin, self).setUp()
     self.user = UserFactory()
     self.url = "/tokens"
     self.post_data = {
         "password": "******",
         "email": self.user.email
     }
コード例 #7
0
ファイル: test_users.py プロジェクト: WeAreWizards/proppyweb
    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)
コード例 #8
0
ファイル: test_users.py プロジェクト: WeAreWizards/proppyweb
    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)
コード例 #9
0
ファイル: test_users.py プロジェクト: WeAreWizards/proppyweb
    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])
コード例 #10
0
ファイル: test_users.py プロジェクト: WeAreWizards/proppyweb
 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)
コード例 #11
0
 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})
コード例 #12
0
ファイル: test_users.py プロジェクト: WeAreWizards/proppyweb
    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)
コード例 #13
0
 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",
     }
コード例 #14
0
 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,
     }
コード例 #15
0
 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))
コード例 #16
0
    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()
コード例 #17
0
 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()
コード例 #18
0
 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
コード例 #19
0
 def setUp(self):
     super(TestSectionImporting, self).setUp()
     self.user = UserFactory()
     self.p1 = DefaultProposalFactory(company=self.user.company)
     self.p2 = DefaultProposalFactory(company=self.user.company)
コード例 #20
0
ファイル: test_auth.py プロジェクト: WeAreWizards/proppyweb
 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)
コード例 #21
0
ファイル: test_auth.py プロジェクト: WeAreWizards/proppyweb
    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)
コード例 #22
0
ファイル: test_users.py プロジェクト: WeAreWizards/proppyweb
    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)
コード例 #23
0
ファイル: test_users.py プロジェクト: WeAreWizards/proppyweb
    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])
コード例 #24
0
ファイル: test_users.py プロジェクト: WeAreWizards/proppyweb
    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)
コード例 #25
0
ファイル: test_users.py プロジェクト: WeAreWizards/proppyweb
 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"
コード例 #26
0
ファイル: test_users.py プロジェクト: WeAreWizards/proppyweb
 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"
コード例 #27
0
 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)
コード例 #28
0
ファイル: test_users.py プロジェクト: WeAreWizards/proppyweb
 def setUp(self):
     super(TestRequestResetPassword, self).setUp()
     self.user = UserFactory()
コード例 #29
0
ファイル: test_users.py プロジェクト: WeAreWizards/proppyweb
 def setUp(self):
     super(TestMe, self).setUp()
     self.user = UserFactory()
     self.url = "/me"
コード例 #30
0
ファイル: test_users.py プロジェクト: WeAreWizards/proppyweb
 def setUp(self):
     super(TestInvite, self).setUp()
     self.user = UserFactory()