Exemplo n.º 1
0
    def firm(self, sess, comment, investor, firm_name=None):
        if firm_name is None:
            if investor.firm == 0:
                return comment.reply_wrap(message.firm_none_org)

            firm = sess.query(Firm).\
                filter(Firm.id == investor.firm).\
                first()
        else:
            firm = sess.query(Firm).\
                filter(func.lower(Firm.name) == func.lower(firm_name)).\
                first()

            if firm is None:
                return comment.reply_wrap(message.firm_notfound_org)

        # Sometimes flairs can get broken, !firm should reinitiate
        # the flair on the user
        # Updating the flair in subreddits
        flair_role = ''
        if investor.firm_role == "ceo":
            flair_role = "CEO"
        elif investor.firm_role == "coo":
            flair_role = "COO"
        elif investor.firm_role == "cfo":
            flair_role = "CFO"
        elif investor.firm_role == "exec":
            flair_role = "Executive"
        elif investor.firm_role == "assoc":
            flair_role = "Associate"
        else:
            flair_role = "Floor Trader"

        # Assigns the correct firm for the flair update below
        flair_firm = sess.query(Firm).\
            filter(Firm.id == investor.firm).\
            first()

        if not config.TEST:
            for subreddit in config.SUBREDDITS:
                REDDIT.subreddit(subreddit).flair.set(investor.name,
                                                      f"{flair_firm.name} | {flair_role}")

        # Redundancy system to null flair if investor is not in a firm
        if not config.TEST and investor.firm == 0:
            for subreddit in config.SUBREDDITS:
                REDDIT.subreddit(subreddit).flair.set(investor.name, "")

        if firm_name is None:
            return comment.reply_wrap(
                message.modify_firm_self(
                    investor.firm_role,
                    firm))

        # Otherwise
        return comment.reply_wrap(
            message.modify_firm_other(
                firm))
Exemplo n.º 2
0
 def test_ceo(self):
     self.command('!create')
     self.set_balance(5000000)
     self.command('!createfirm Foobar')
     replies = self.command('!firm')
     self.assertEqual(len(replies), 1)
     self.assertEqual(
         replies[0],
         message.modify_firm_self('ceo', MockFirm('Foobar', balance=1000)))
Exemplo n.º 3
0
    def test_firm_assoc(self):
        self.command('!create')
        self.set_balance(5000000)
        self.command('!createfirm Foobar')

        self.command('!create', username='******')
        self.command('!create', username='******')
        self.command('!create', username='******')

        self.command('!joinfirm Foobar', username='******')
        self.command('!joinfirm Foobar', username='******')
        self.command('!joinfirm Foobar', username='******')

        self.command('!promote testuser2')

        replies = self.command('!firm', username='******')
        self.assertEqual(len(replies), 1)
        self.assertEqual(
            replies[0],
            message.modify_firm_self('assoc',
                                     MockFirm('Foobar', balance=1000, size=4)))
    def firm(self, sess, comment, investor, firm_name=None):
        if firm_name is None:
            if investor.firm == 0:
                return comment.reply_wrap(message.firm_none_org)

            firm = sess.query(Firm).\
                filter(Firm.id == investor.firm).\
                first()
        else:
            firm = sess.query(Firm).\
                filter(func.lower(Firm.name) == func.lower(firm_name)).\
                first()

            if firm is None:
                return comment.reply_wrap(message.firm_notfound_org)

        ceo = "/u/" + sess.query(Investor).\
            filter(Investor.firm == firm.id).\
            filter(Investor.firm_role == "ceo").\
            first().\
            name
        execs = concat_names(
            sess.query(Investor).\
                filter(Investor.firm == firm.id).\
                filter(Investor.firm_role == "exec").\
                all())
        traders = concat_names(
            sess.query(Investor).\
                filter(Investor.firm == firm.id).\
                filter(Investor.firm_role == "").\
                all())

        if firm_name is None:
            return comment.reply_wrap(
                message.modify_firm_self(investor.firm_role, firm, ceo, execs,
                                         traders))
        else:
            return comment.reply_wrap(
                message.modify_firm_other(firm, ceo, execs, traders))
Exemplo n.º 5
0
    def firm(self, sess, comment, investor, firm_name=None):
        if firm_name is None:
            if investor.firm == 0:
                return comment.reply_wrap(message.firm_none_org)

            firm = sess.query(Firm).\
                filter(Firm.id == investor.firm).\
                first()
        else:
            firm = sess.query(Firm).\
                filter(func.lower(Firm.name) == func.lower(firm_name)).\
                first()

            if firm is None:
                return comment.reply_wrap(message.firm_notfound_org)

        ceo = "/u/" + sess.query(Investor).\
            filter(Investor.firm == firm.id).\
            filter(Investor.firm_role == "ceo").\
            first().\
            name
        coo = concat_names(
            sess.query(Investor).\
                filter(Investor.firm == firm.id).\
                filter(Investor.firm_role == "coo").\
                all())
        cfo = concat_names(
            sess.query(Investor).\
                filter(Investor.firm == firm.id).\
                filter(Investor.firm_role == "cfo").\
                all())
        execs = concat_names(
            sess.query(Investor).\
                filter(Investor.firm == firm.id).\
                filter(Investor.firm_role == "exec").\
                all())
        assocs = concat_names(
            sess.query(Investor).\
                filter(Investor.firm == firm.id).\
                filter(Investor.firm_role == "assoc").\
                all())
        traders = concat_names(
            sess.query(Investor).\
                filter(Investor.firm == firm.id).\
                filter(Investor.firm_role == "").\
                all())

        # Sometimes flairs can get broken, !firm should reinitiate
        # the flair on the user
        # Updating the flair in subreddits
        flair_role = ''
        if investor.firm_role == "ceo":
            flair_role = "CEO"
        elif investor.firm_role == "coo":
            flair_role = "COO"
        elif investor.firm_role == "cfo":
            flair_role = "CFO"
        elif investor.firm_role == "exec":
            flair_role = "Executive"
        elif investor.firm_role == "assoc":
            flair_role = "Associate"
        else:
            flair_role = "Floor Trader"

        # Assigns the correct firm for the flair update below
        flair_firm = sess.query(Firm).\
            filter(Firm.id == investor.firm).\
            first()

        if not config.TEST:
            for subreddit in config.SUBREDDITS:
                REDDIT.subreddit(subreddit).flair.set(
                    investor.name, f"{flair_firm.name} | {flair_role}")

        if firm_name is None:
            return comment.reply_wrap(
                message.modify_firm_self(investor.firm_role, firm, ceo, coo,
                                         cfo, execs, assocs, traders))
        else:
            return comment.reply_wrap(
                message.modify_firm_other(firm, ceo, coo, cfo, execs, assocs,
                                          traders))