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))
def test_lookup_different_case(self): self.command('!create') self.set_balance(5000000) self.command('!createfirm Foobar') self.command('!create', username='******') replies = self.command('!firm foobar', username='******') self.assertEqual(len(replies), 1) self.assertEqual( replies[0], message.modify_firm_other(MockFirm('Foobar', balance=1000)))
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))
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))