def create_app(config_name): """FlaskAPI provides an implementation of browsable APIs""" app = FlaskAPI(__name__) APP_ROOT = os.path.dirname(app.instance_path) app.config.from_object(application_config[config_name]) app.config.from_pyfile(APP_ROOT + '/config.py') database_connection = DatabaseConnection() database_connection.create_tables() return app
def start_tg_bot(): parser = argparse.ArgumentParser(description='TG / IRC bridge bot') parser.add_argument('--config', metavar='path', type=str, required=True, help='path to config file') parser.add_argument('--debug', dest='debug', action='store_true', required=False, default=False, help='Activate debugging output') cliargs = parser.parse_args() if cliargs.debug: logger.setLevel(logging.DEBUG) logger.info('Loglevel set to DEBUG') vectronconfig = load_from_file(cliargs.config) tg_bot = TGBot(vectronconfig) dbc = DatabaseConnection() dbc.create_tables() # irc_server = IRCServer('Freenode', 'chat.freenode.net') # dbc.add_irc_server(irc_server) # irc_server = IRCServer('Quakenet', 'irc.quakenet.org', port=6667, ssl=False) # dbc.add_irc_server(irc_server) # irc_server = IRCServer('IRCNet', 'open.ircnet.org', port=6666) # dbc.add_irc_server(irc_server) # irc_server = IRCServer('Undernet', 'eu.undernet.org', port=6667) # dbc.add_irc_server(irc_server) bridges = dbc.get_all_bridges() for bridge in bridges: tg_bot.create_bridge(bridge['tg_id'], bridge['irc_server_description'], bridge['irc_channel'], bridge['token'], bridge['validated'], only_add_channel=True) # delete old files if the data retention is > 0 if vectronconfig['webserver_data_retention'] > 0: cron_delete = CronDelete(vectronconfig) cron_delete.start() tg_bot.start_webhook()
# You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. import logging from tg_bot import TGBot from database import DatabaseConnection from filehandler import CronDelete from config import config from irc_server import IRCServer if __name__ == "__main__": tg_bot = TGBot() dbc = DatabaseConnection() dbc.create_tables() # irc_server = IRCServer('Freenode', 'chat.freenode.net') # dbc.add_irc_server(irc_server) # irc_server = IRCServer('Quakenet', 'irc.quakenet.org', port=6667, ssl=False) # dbc.add_irc_server(irc_server) # irc_server = IRCServer('IRCNet', 'open.ircnet.org', port=6666) # dbc.add_irc_server(irc_server) # irc_server = IRCServer('Undernet', 'eu.undernet.org', port=6667) # dbc.add_irc_server(irc_server) bridges = dbc.get_all_bridges() for bridge in bridges: tg_bot.create_bridge(bridge['tg_id'], bridge['irc_server_description'], bridge['irc_channel'],
from flask import Flask from database import DatabaseConnection app = Flask(__name__) database_connection = DatabaseConnection() database_connection.create_tables() from app.views import users from app.views import produce from app.views import client_request
def setUp(self): self.client = app.test_client() app.config.from_object(application_config['TestingEnv']) db = DatabaseConnection('testdatabase') db.create_tables() self.empty_user = json.dumps({ "name": "", "email": "", "password": "", "confirm_password": "", "role": "" }) self.users = json.dumps({ "name": "Nabulo Vivian", "email": "*****@*****.**", "password": "******", "confirm_password": "******", "role": "admin" }) self.new_user = json.dumps({ "name": "Mukuwa Geoffrey", "email": "*****@*****.**", "password": "******", "confirm_password": "******", "role": "admin" }) self.new_user_register = json.dumps({ "name": "Mukuwa Geoffrey", "email": "*****@*****.**", "password": "******", "confirm_password": "******", "role": "admin" }) self.missing_params = json.dumps({ "": "*****@*****.**", "password": "******" }) self.no_mail_login = json.dumps({"email": "", "password": "******"}) self.wrong_password = json.dumps({ "email": "*****@*****.**", "password": "******" }) self.valid_user = json.dumps({ "email": "*****@*****.**", "password": "******" }) self.product = json.dumps({ "product_name": "Frames", "category": "Furniture", "quantity": 1, "unit_price": 50 }) self.empty_product = json.dumps({ "product_name": "", "category": "", "quantity": 1, "unit_price": 50 }) self.sale = json.dumps({ "products_id": 5, "quantity": 8, "unit_price": 5000 }) self.empty_sale = json.dumps({ "products_id": "", "quantity": "", "unit_price": 5000 }) self.result_empty_sale = ("Check your input values." "\n products_id, quantity and unit price " "\n\t\t\t\t- Required" "\n\t\t\t\t- Must be an integer " "\n\t\t\t\t- Must begin with a number") self.result_empty_string = ("Check your input values." "\n name*" " \n\t\t\t\t- Required" "\n\t\t\t\t- Must be a string, " "\n\t\t\t\t- Minlength: 2 characters" "\n\t\t\t\t- Must begin with a character" "\n Email*" "\n\t\t\t\t- Required" "\n\t\t\t\t- Must begin with any character" "\n\t\t\t\t- Must be a valid mail" "\n Password* " "\n\t\t\t\t- Required" "\n\t\t\t\t- Must be a string " "\n\t\t\t\t- Minlength : 5 characters" "\n\t\t\t\t- Must begin with a character") self.empty_email = ("\n Email*" "\n\t\t\t\t- Required" "\n\t\t\t\t- Must begin with any character" "\n\t\t\t\t- Must be a valid mail" "\n Password* " "\n\t\t\t\t- Required" "\n\t\t\t\t- Must be a string " "\n\t\t\t\t- Minlength : 5 characters" "\n\t\t\t\t- Must begin with a character") self.result_empty_product = ("Check your input values." "\n product Name* and category" " \n\t\t\t\t- Required" "\n\t\t\t\t- Must be a string, " "\n\t\t\t\t- Minlength: 2 characters" "\n\t\t\t\t- Must begin with a character" "\n quantity and unit price " "\n\t\t\t\t- Required" "\n\t\t\t\t- Must be an integer " "\n\t\t\t\t- Must begin with a number") response = self.client.post('/api/v1/auth/login', content_type='application/json', data=self.valid_user) json_data = json.loads(response.data.decode()) self.token = json_data['token'] self.header = {'x-access-token': self.token} payload = { 'exp': datetime.datetime.utcnow() + datetime.timedelta(days=1), 'iat': datetime.datetime.utcnow(), 'sub': 7 } self.invalid_token = jwt.encode(payload, 'thisissecrete', algorithm='HS256') self.wrong_header = {'xgfcjkhbn': self.invalid_token}