Exemple #1
0
    def test_as_dict(self):
        share = Share()
        share.account_id = 6
        share.key_id = 14
        share.local_port = 2022
        share.id = -1
        share.server_session_token = 'abcd'

        share.server = 'a.openport.io'
        share.server_port = 1234
        share.pid = 234
        share.active = True
        share.restart_command = ['restart', 'command']
        share.http_forward = True
        share.http_forward_address = 'http://jan.u.openport.io'
        share.open_port_for_ip_link = 'http//openport.io/l/1234/zerazer'

        share2 = Share().from_dict(share.as_dict())

        self.assertEquals(share.id, share2.id)
        self.assertEquals(share.server, share2.server)
        self.assertEquals(share.server_port, share2.server_port)
        self.assertEquals(share.pid, share2.pid)
        self.assertEquals(share.active, share2.active)
        self.assertEquals(share.account_id, share2.account_id)
        self.assertEquals(share.key_id, share2.key_id)
        self.assertEquals(share.local_port, share2.local_port)
        self.assertEquals(share.server_session_token,
                          share2.server_session_token)
        self.assertEquals(share.restart_command, share2.restart_command)
        self.assertEquals(share.http_forward, share2.http_forward)
        self.assertEquals(share.http_forward_address,
                          share2.http_forward_address)
        self.assertEquals(share.open_port_for_ip_link,
                          share2.open_port_for_ip_link)
Exemple #2
0
    def test_concurrency_2(self):
        dbhandler2 = dbhandler.DBHandler(self.test_db)
        try:

            share = Share(active=True)
            share.local_port = 2224

            share2 = Share(active=True)
            share2.local_port = 2225

            saved_share = self.dbhandler.add_share(share)
            saved_share2 = dbhandler2.add_share(share2)

            retrieved_share2 = self.dbhandler.get_share_by_local_port(2225)
            retrieved_share = self.dbhandler.get_share_by_local_port(2224)

            self.assertEqual(retrieved_share.local_port, share.local_port)
            self.assertEqual(retrieved_share2.local_port, share2.local_port)
        finally:
            dbhandler2.close()
Exemple #3
0
    def test_concurrency(self):
        dbhandler2 = dbhandler.DBHandler(self.test_db)

        share = Share()
        share.local_port = 2224
        saved_share = self.dbhandler.add_share(share)
        retrieved_share = dbhandler2.get_share(saved_share.id)
        try:
            self.assertEqual(retrieved_share.local_port, share.local_port)
        finally:
            dbhandler2.close()
    def testSaveShare(self):
        share = Share()
        share.account_id = 6
        share.key_id = 14
        share.local_port = 2022
        share.id = -1
        self.dbhandler.add_share(share)

        self.assertNotEqual(-1, share.id)

        share2 = self.dbhandler.get_share(share.id)

        self.assertEquals(2022, share2.local_port)
Exemple #5
0
    def test_save_share(self):
        share = Share()
        share.account_id = 6
        share.key_id = 14
        share.local_port = 2022
        share.id = -1
        share.server_session_token = 'abcd'

        share.server = 'a.openport.io'
        share.server_port = 1234
        share.pid = 234
        share.active = True
        share.restart_command = ['restart', 'command']
        share.http_forward = True
        share.http_forward_address = 'http://jan.u.openport.io'
        share.app_management_port = 43122
        share.open_port_for_ip_link = 'http//openport.io/l/1234/zerazer'

        self.dbhandler.add_share(share)

        self.assertNotEqual(-1, share.id)

        share2 = self.dbhandler.get_share(share.id)

        self.assertEquals(share.id, share2.id)
        self.assertEquals(share.server, share2.server)
        self.assertEquals(share.server_port, share2.server_port)
        self.assertEquals(share.pid, share2.pid)
        self.assertEquals(share.active, share2.active)
        self.assertEquals(share.account_id, share2.account_id)
        self.assertEquals(share.key_id, share2.key_id)
        self.assertEquals(share.local_port, share2.local_port)
        self.assertEquals(share.server_session_token, share2.server_session_token)
        self.assertEquals(share.restart_command, share2.restart_command)
        self.assertEquals(share.http_forward, share2.http_forward)
        self.assertEquals(share.http_forward_address, share2.http_forward_address)
        self.assertEquals(share.app_management_port, share2.app_management_port)
        self.assertEquals(share.open_port_for_ip_link, share2.open_port_for_ip_link)
Exemple #6
0
    def test_stress_test(self):  
        share = Share()

        dbhandler2 = dbhandler.DBHandler(self.test_db)

        try:
            errors = []
            for i in range(100):
              try:
                share.local_port = i
                saved_share = self.dbhandler.add_share(share)
                retrieved_share = dbhandler2.get_share(saved_share.id)
                self.assertEqual(retrieved_share.local_port, share.local_port)

                saved_share = dbhandler2.add_share(share)
                retrieved_share = self.dbhandler.get_share(saved_share.id)
                self.assertEqual(retrieved_share.local_port, share.local_port)
              except AssertionError:
                print 'error on i:%s' % i
                errors.append(i)
            self.assertEqual([], errors)
        finally:
            dbhandler2.close()
    def start(self):
        logger.debug("client pid:%s" % os.getpid())
        import argparse

        parser = argparse.ArgumentParser()
        self.add_default_arguments(parser, local_port_required=False)
        parser.add_argument("--file-token", default="", help="The token needed to download the file.")
        parser.add_argument("filename", help="The file you want to openport.")
        args = parser.parse_args()
        if args.no_gui:
            args.hide_message = True
            args.no_clipboard = True
        self.args = args

        def show_message_box(share):
            import wx

            wx.MessageBox(
                "You can now download your file(s) from %s\nThis link has been copied to your clipboard."
                % (share.get_link()),
                "Info",
                wx.OK | wx.ICON_INFORMATION,
            )

        def get_restart_command_for_share(share):
            command = self.get_restart_command(share)
            if not "--file-token" in command:
                command.extend(["--file-token", share.token])
            return command

        self.first_time = True

        def callback(ignore):
            #            global first_time
            if not self.first_time:
                return
            self.first_time = False

            share.restart_command = get_restart_command_for_share(share)
            if args.tray_port > 0:
                self.inform_tray_app_new(share, args.tray_port, start_tray=(not args.no_tray))

            share.error_observers.append(self.error_callback)
            share.success_observers.append(self.success_callback)

            if not args.no_clipboard:
                self.copy_share_to_clipboard(share)
            if args.hide_message:
                logger.info("Your file can be downloaded from %s" % share.get_link())
            else:
                self.show_message_box(share)

        share = Share()
        if args.file_token == "":
            share.token = crypt_service.get_token()
        else:
            share.token = args.file_token
        share.filePath = os.path.join(os.getcwd(), args.filename)
        share.server_port = args.request_port
        share.local_port = args.local_port
        share.server_session_token = args.request_token

        self.session = share
        self.open_port_file(share, callback)

        while True:
            sleep(1)