Пример #1
0
 def test_can_show_status_as_paid(self):
     frontend = Frontend(Frontend.TYPE_FRONTEND_INVISIBLE)
     frontend.start()
     frontend.show_paid()
     active_div = frontend.get_active_div()
     frontend.shutdown()
     self.assertEqual(active_div, "#paid")
Пример #2
0
 def test_can_show_invoice(self):
     frontend = Frontend(Frontend.TYPE_FRONTEND_INVISIBLE)
     frontend.start()
     frontend.show_invoice('bitcoin:1asdf')
     active_div = frontend.get_active_div()
     frontend.shutdown()
     self.assertEqual(active_div, "#invoice")
Пример #3
0
 def test_can_switch_to_paid_and_back_to_idle(self):
     frontend = Frontend(Frontend.TYPE_FRONTEND_INVISIBLE)
     frontend.start()
     frontend.show_paid()
     active_div = frontend.get_active_div()
     frontend.show_idle()
     active_div2 = frontend.get_active_div()
     frontend.shutdown()
     self.assertEqual(active_div, "#paid")
     self.assertEqual(active_div2, "#idle")
Пример #4
0
class GraphApp:
	@staticmethod
	def win_attributes(the_window):
		the_window.update_idletasks()
		w = the_window.winfo_screenwidth()
		h = the_window.winfo_screenheight()
		size = (410, 400)
		x = w / 2 - size[0] / 2
		y = h / 2 - size[1] / 2
		the_window.geometry("%dx%d+%d+%d" % (size + (x, y)))
		the_window.attributes('-topmost', 1)
		the_window.attributes('-topmost', 0)
		the_window.wm_title("Project 1: The Grapher")
		the_window.config(cursor='cross', background='#197278')
		the_window.overrideredirect(1)

	def __init__(self):
		self.win = Tk()
		self.win.protocol("WM_DELETE_WINDOW", self.win.destroy)
		self.win_attributes(self.win)
		self.web_server = object()
		self.server_is_running = False

		for button_type in ['upload', 'readme', 'quit']:
			ButtonCreator(self.win, button_type, self.fxn_mapper(button_type))

		self.win.mainloop()

	def run_front_end(self, graph_data):
		self.web_server = Frontend(graph_data)
		self.web_server.start()
		self.server_is_running = True

	def upload(self):
		filename = askopenfilename()
		if filename:
			graph_data = file_import(filename)
			self.run_front_end(graph_data)

	def quit(self):
		self.win.destroy()
		if self.server_is_running:
			self.web_server.stop()

	def open_readme(self):
		webbrowser.open("file://" + os.path.abspath("readme.txt"))

	def fxn_mapper(self, typ):
		if typ == 'upload':
			return self.upload
		if typ == 'readme':
			return self.open_readme
		if typ == 'quit':
			return self.quit
Пример #5
0
    def test_user_can_initiate_new_invoice(self):
        q = Queue()

        def request_received():
            q.put(None)

        frontend = Frontend(Frontend.TYPE_FRONTEND_INVISIBLE,
                            invoice_request_callback=request_received)
        frontend.start()
        frontend.exercise_javascript_bridge()
        q.get()
        frontend.shutdown()
Пример #6
0
class MainResource(object):
    def __init__(self):
        self._logger = logging.getLogger('gunicorn.error')
        self._frontend = Frontend()
        self._frontend.start()

    def on_get(self, req, resp):
        self._logger.debug(
            f'Handling {req.method} request {req.url} with params {req.params}'
        )
        try:
            top_phrases = self._frontend.top_phrases_for_prefix(
                req.params['prefix'])
            response_body = json.dumps({
                "status": "success",
                "data": {
                    "top_phrases": top_phrases
                }
            })
            resp.status = falcon.HTTP_200
            resp.body = response_body

        except BackendNodesNotAvailable as err:
            response_body = json.dumps({
                "status":
                "error",
                "message":
                "No backend nodes available to complete the request"
            })
            resp.status = falcon.HTTP_500
            resp.body = response_body

        except Exception as e:
            self._logger.error('An error occurred when processing the request',
                               exc_info=e)
            response_body = json.dumps({
                "status":
                "error",
                "message":
                "An error occurred when processing the request"
            })
            resp.status = falcon.HTTP_500
            resp.body = response_body
Пример #7
0
from exploiter import Exploiter
from webservice import WebService
from submitter import Submitter
from frontend import Frontend
import signal
import logging.config

if __name__ == '__main__':
    logging.config.fileConfig(fname='log.conf')
    logger_exploiter = logging.getLogger('exploiter')
    logger_submitter = logging.getLogger('submitter')
    logger_webservice = logging.getLogger('webservice')

    WebService.start(logger_webservice)
    Exploiter.start(logger_exploiter)
    Submitter.start(logger_submitter)
    Frontend.start()

    signal.pause()
Пример #8
0
import renderer
import theme_handler
from curses_handler import CursesHandler
from frontend import Frontend

__tag__ = 'main'

if __name__ == '__main__':
    locale.setlocale(locale.LC_ALL, '')
    code = locale.getpreferredencoding()
    error = None
    c_handler = CursesHandler()
    try:
        if c_handler.curses_init():

            renderer.init_color()
            theme_handler.init_theme()
            renderer.draw_loading_screen()

            frontend = Frontend(c_handler)
            frontend.start()
            input_handler.start_input_handler(frontend)

    except BaseException as e:
        error = e
    finally:
        c_handler.curses_deinit()
        if error:
            # print type(error)
            print error.message
Пример #9
0
 def test_can_be_started_and_stopped_and_defaults_to_idle(self):
     frontend = Frontend(Frontend.TYPE_FRONTEND_INVISIBLE)
     frontend.start()
     active_div = frontend.get_active_div()
     frontend.shutdown()
     self.assertEqual(active_div, "#idle")
Пример #10
0
# parser.add_argument("--dns", help="dns address and port")
# parser.add_argument("--listen_ip", help="ip address to listen")
# parser.add_argument("--listen_port", help="port to listen")
parser.add_argument("--upstream", help="upstream addr and port")
parser.add_argument("--bind", help="bind addr and port")
parser.add_argument("--name", help="app name. can be 'dns', 'frontend', 'proxy', 'counter")
parser.add_argument("--dnslb", help="use client load balancer", action='store_true', default=False)


def channel_options(args):
    return [('grpc.lb_policy_name', 'round_robin')] if args.dnslb else None


if __name__ == '__main__':
    args = parser.parse_args()
    name = args.name

    if name == 'frontend':
        f = Frontend(name, args.upstream, args.bind, channel_options(args))
        f.start()

    elif name == 'proxy':
        p = Proxy(name, args.upstream, args.bind, channel_options(args))
        p.start()

    elif name == 'counter':
        run_server(args.bind)

    else:
        raise RuntimeError("Invalid App name!!")
def init_backend(cmds):
    program = Frontend()
    return program.start(cmds)
Пример #12
0
def run_frontend_server(proxy_port, frontend_port):
    f = Frontend('frontend', f'localhost:{proxy_port}',
                 f'localhost:{frontend_port}', dnslb)
    f.start()