Exemplo n.º 1
0
 def readPassWord(self, wifissid):  # 读取密码字典,进行匹配
     print("开始破解: %s" % wifissid)
     # 将结果写入文本文件记录
     res = "开始破解:: %s \n" % wifissid
     open(self.resfile, "a").write(res)
     pwdfilehander = open(self.pwdfile, "r", errors="ignore")
     while True:
         try:
             myStr = pwdfilehander.readline()
             if not myStr:
                 break
             bool1 = self.test_connect(myStr, wifissid)
             if bool1:
                 # print("密码正确:"+myStr)
                 # res = "密码:%s 正确 \n"%myStr;
                 res = "===正确=== ^_^ wifi名:%s  匹配密码:%s " % (wifissid, myStr)
                 print(res)
                 # 将结果写入文本文件记录
                 open(self.resfile, "a").write(res)
                 break
             else:
                 # print("密码:"+myStr+"错误")
                 res = "---错误--- wifi名:%s匹配密码:%s" % (wifissid, myStr)
                 print(res)
                 # 将结果写入文本文件记录
                 open(self.resfile, "a").write(res)
             sleep(3)
         except:
             continue
Exemplo n.º 2
0
    def test_wait(self):
        def gen():
            when = yield
            self.assertAlmostEqual(0.1, when)
            when = yield 0
            self.assertAlmostEqual(0.15, when)
            yield 0.15

        loop = test_utils.TestLoop(gen)
        self.addCleanup(loop.close)

        a = tasks.Task(tasks.sleep(0.1, loop=loop), loop=loop)
        b = tasks.Task(tasks.sleep(0.15, loop=loop), loop=loop)

        @tasks.coroutine
        def foo():
            done, pending = yield from tasks.wait([b, a], loop=loop)
            self.assertEqual(done, set([a, b]))
            self.assertEqual(pending, set())
            return 42

        res = loop.run_until_complete(tasks.Task(foo(), loop=loop))
        self.assertEqual(res, 42)
        self.assertAlmostEqual(0.15, loop.time())

        # Doing it again should take no time and exercise a different path.
        res = loop.run_until_complete(tasks.Task(foo(), loop=loop))
        self.assertAlmostEqual(0.15, loop.time())
        self.assertEqual(res, 42)
Exemplo n.º 3
0
 def _find_form_with_special_parameters(self,
                                        page,
                                        login_data,
                                        interactive_search=True):
     keys = list(login_data.keys())
     data1 = keys[0]
     data2 = keys[1]
     for form in page.forms:
         if form.toString().find(data1) > -1 and form.toString().find(
                 data2) > -1:
             return form, None
     if interactive_search:
         for clickable in page.clickables:
             tmp_page = deepcopy(page)
             event_state, delta_page = self._event_executor.execute(
                 tmp_page, element_to_click=clickable)
             if delta_page is None:
                 sleep(2000)
                 event_state, delta_page = self._event_executor.execute(
                     tmp_page, element_to_click=clickable)
             if delta_page is None:
                 continue
             delta_page = self.domain_handler.complete_urls_in_page(
                 delta_page)
             delta_page = self.domain_handler.analyze_urls(delta_page)
             if event_state == EventResult.Ok:
                 for form in delta_page.forms:
                     if form.toString().find(data1) > -1 and form.toString(
                     ).find(data2) > -1:
                         return form, clickable
     return None, None
Exemplo n.º 4
0
 def displayNumbers(self):
     i = 0
     print(current_thread().getName())
     sleep(0.05)
     while (i < 10):
         print(i)
         i += 1
Exemplo n.º 5
0
    def test_wait_concurrent_complete(self):

        def gen():
            when = yield
            self.assertAlmostEqual(0.1, when)
            when = yield 0
            self.assertAlmostEqual(0.15, when)
            when = yield 0
            self.assertAlmostEqual(0.1, when)
            yield 0.1

        loop = test_utils.TestLoop(gen)
        self.addCleanup(loop.close)

        a = tasks.Task(tasks.sleep(0.1, loop=loop), loop=loop)
        b = tasks.Task(tasks.sleep(0.15, loop=loop), loop=loop)

        done, pending = loop.run_until_complete(
            tasks.wait([b, a], timeout=0.1, loop=loop))

        self.assertEqual(done, set([a]))
        self.assertEqual(pending, set([b]))
        self.assertAlmostEqual(0.1, loop.time())

        # move forward to close generator
        loop.advance_time(10)
        loop.run_until_complete(tasks.wait([a, b], loop=loop))
Exemplo n.º 6
0
    def test_wait_with_global_loop(self):
        def gen():
            when = yield
            self.assertAlmostEqual(0.01, when)
            when = yield 0
            self.assertAlmostEqual(0.015, when)
            yield 0.015

        loop = test_utils.TestLoop(gen)
        self.addCleanup(loop.close)

        a = tasks.Task(tasks.sleep(0.01, loop=loop), loop=loop)
        b = tasks.Task(tasks.sleep(0.015, loop=loop), loop=loop)

        @tasks.coroutine
        def foo():
            done, pending = yield from tasks.wait([b, a])
            self.assertEqual(done, set([a, b]))
            self.assertEqual(pending, set())
            return 42

        events.set_event_loop(loop)
        try:
            res = loop.run_until_complete(tasks.Task(foo(), loop=loop))
        finally:
            events.set_event_loop(None)

        self.assertEqual(res, 42)
Exemplo n.º 7
0
    def test_wait(self):

        def gen():
            when = yield
            self.assertAlmostEqual(0.1, when)
            when = yield 0
            self.assertAlmostEqual(0.15, when)
            yield 0.15

        loop = test_utils.TestLoop(gen)
        self.addCleanup(loop.close)

        a = tasks.Task(tasks.sleep(0.1, loop=loop), loop=loop)
        b = tasks.Task(tasks.sleep(0.15, loop=loop), loop=loop)

        @tasks.coroutine
        def foo():
            done, pending = yield from tasks.wait([b, a], loop=loop)
            self.assertEqual(done, set([a, b]))
            self.assertEqual(pending, set())
            return 42

        res = loop.run_until_complete(tasks.Task(foo(), loop=loop))
        self.assertEqual(res, 42)
        self.assertAlmostEqual(0.15, loop.time())

        # Doing it again should take no time and exercise a different path.
        res = loop.run_until_complete(tasks.Task(foo(), loop=loop))
        self.assertAlmostEqual(0.15, loop.time())
        self.assertEqual(res, 42)
Exemplo n.º 8
0
    def test_wait_first_completed(self):

        def gen():
            when = yield
            self.assertAlmostEqual(10.0, when)
            when = yield 0
            self.assertAlmostEqual(0.1, when)
            yield 0.1

        loop = test_utils.TestLoop(gen)
        self.addCleanup(loop.close)

        a = tasks.Task(tasks.sleep(10.0, loop=loop), loop=loop)
        b = tasks.Task(tasks.sleep(0.1, loop=loop), loop=loop)
        task = tasks.Task(
            tasks.wait([b, a], return_when=tasks.FIRST_COMPLETED,
                       loop=loop),
            loop=loop)

        done, pending = loop.run_until_complete(task)
        self.assertEqual({b}, done)
        self.assertEqual({a}, pending)
        self.assertFalse(a.done())
        self.assertTrue(b.done())
        self.assertIsNone(b.result())
        self.assertAlmostEqual(0.1, loop.time())

        # move forward to close generator
        loop.advance_time(10)
        loop.run_until_complete(tasks.wait([a, b], loop=loop))
Exemplo n.º 9
0
    def readPassWord(self,i):
        flag =int(i)
#         self.PassWord()
        
        for file00 in self.objevg[flag]:
            
            while True:
               
                try:
                    myStr =file00.readline()
                    if not myStr:
                        break
                    name,bool1=self.test_connect(myStr)
                    if bool1:
                        
                        self.Lbox.insert(END,name+str(i)+"-密码正确:"+myStr)
                        print(myStr)
                       # ret =tkinter.messagebox.showinfo(title ="破解成功",message=name+str(i)+"-密码:"+myStr)
                        self.root.update()
    
                        self.btn["text"]="开始破解"
                        break
                    else:
                        
                        self.Lbox.insert(END,name+str(i)+"-密码错误:"+myStr)
                        self.root.update()
                        print((END,name+str(i)+"-密码错误:"+myStr))
                    sleep(3)
                except:
                    continue
                    
            
        self.btn["text"]="-开始破解"
Exemplo n.º 10
0
    def test_wait_first_completed(self):
        def gen():
            when = yield
            self.assertAlmostEqual(10.0, when)
            when = yield 0
            self.assertAlmostEqual(0.1, when)
            yield 0.1

        loop = test_utils.TestLoop(gen)
        self.addCleanup(loop.close)

        a = tasks.Task(tasks.sleep(10.0, loop=loop), loop=loop)
        b = tasks.Task(tasks.sleep(0.1, loop=loop), loop=loop)
        task = tasks.Task(tasks.wait([b, a],
                                     return_when=tasks.FIRST_COMPLETED,
                                     loop=loop),
                          loop=loop)

        done, pending = loop.run_until_complete(task)
        self.assertEqual({b}, done)
        self.assertEqual({a}, pending)
        self.assertFalse(a.done())
        self.assertTrue(b.done())
        self.assertIsNone(b.result())
        self.assertAlmostEqual(0.1, loop.time())

        # move forward to close generator
        loop.advance_time(10)
        loop.run_until_complete(tasks.wait([a, b], loop=loop))
Exemplo n.º 11
0
    def test_wait_concurrent_complete(self):
        def gen():
            when = yield
            self.assertAlmostEqual(0.1, when)
            when = yield 0
            self.assertAlmostEqual(0.15, when)
            when = yield 0
            self.assertAlmostEqual(0.1, when)
            yield 0.1

        loop = test_utils.TestLoop(gen)
        self.addCleanup(loop.close)

        a = tasks.Task(tasks.sleep(0.1, loop=loop), loop=loop)
        b = tasks.Task(tasks.sleep(0.15, loop=loop), loop=loop)

        done, pending = loop.run_until_complete(
            tasks.wait([b, a], timeout=0.1, loop=loop))

        self.assertEqual(done, set([a]))
        self.assertEqual(pending, set([b]))
        self.assertAlmostEqual(0.1, loop.time())

        # move forward to close generator
        loop.advance_time(10)
        loop.run_until_complete(tasks.wait([a, b], loop=loop))
Exemplo n.º 12
0
    def test_wait_with_global_loop(self):

        def gen():
            when = yield
            self.assertAlmostEqual(0.01, when)
            when = yield 0
            self.assertAlmostEqual(0.015, when)
            yield 0.015

        loop = test_utils.TestLoop(gen)
        self.addCleanup(loop.close)

        a = tasks.Task(tasks.sleep(0.01, loop=loop), loop=loop)
        b = tasks.Task(tasks.sleep(0.015, loop=loop), loop=loop)

        @tasks.coroutine
        def foo():
            done, pending = yield from tasks.wait([b, a])
            self.assertEqual(done, set([a, b]))
            self.assertEqual(pending, set())
            return 42

        events.set_event_loop(loop)
        try:
            res = loop.run_until_complete(
                tasks.Task(foo(), loop=loop))
        finally:
            events.set_event_loop(None)

        self.assertEqual(res, 42)
Exemplo n.º 13
0
 def attack_all_get_forms(self):
     if self.process_with_login:
         self._handle_possible_logout()
     logging.debug("Attacking with get forms")
     all_forms = self.database_manager.get_one_form_per_destination()
     for form in all_forms:
         logging.debug(form.toString())
         if "javascript" in form.action.complete_url:
             continue
         for param_to_attack in form.parameter:
             if param_to_attack.input_type == "submit" or param_to_attack.name is None:
                 continue
             logging.debug("Now at paramerter {}".format(
                 param_to_attack.toString()))
             empty_counter = 0
             for vector in self._xss_vector.attack_vectors:
                 attack_url = form.action.complete_url + "?"
                 random_val = self._xss_vector.random_number_generator(12)
                 for other_parameter in form.parameter:
                     if param_to_attack == other_parameter:
                         if other_parameter is None or other_parameter.name is None:
                             continue
                         attack_url += other_parameter.name + "=" + vector.replace(
                             "XSS", random_val) + "&"
                     else:
                         if other_parameter.input_type == "submit" or other_parameter.name is None:
                             continue
                         elif other_parameter.values is None:
                             attack_url += other_parameter.name + "=&"
                         elif other_parameter.values[0] is not None:
                             attack_url += other_parameter.name + "=" + other_parameter.values[
                                 0] + "&"
                         else:
                             attack_url += other_parameter.name + "=" + self._xss_vector.random_string_generator(
                                 6) + "&"
                 attack_url = attack_url[:-1]
                 logging.debug("Attack with: {}".format(attack_url))
                 result, response_code = self._xss.attack(
                     attack_url, random_val)
                 if not self._check_login_status_with_cookies():
                     sleep(2000)
                     self._initial_login()
                     result, response_code = self._xss.attack(
                         attack_url, random_val)
                 if response_code is None:
                     continue
                 if response_code >= 400 or result == AttackResult.JSON:
                     empty_counter = 42
                 logging.debug("Result: {} - Response Code: {}".format(
                     result, response_code))
                 if result in (AttackResult.AttackSuccessfull,
                               AttackResult.AttackFailed):
                     self.database_manager.insert_attack_result(
                         result, attack_url)
                     empty_counter = 0
                 else:
                     empty_counter += 1
                 if empty_counter > EMPTY_LIMIT:
                     break
Exemplo n.º 14
0
 def click_register_button(self):
     self.driver.find_element(*RegisterPageDemoWebShop.GENDER).click()
     self.driver.find_element(*RegisterPageDemoWebShop.FIRST_NAME).send_keys('aswani')
     self.driver.find_element(*RegisterPageDemoWebShop.LAST_NAME).send_keys('kumar')
     self.driver.find_element(*RegisterPageDemoWebShop.EMAIL_ID).send_keys('*****@*****.**')
     self.driver.find_element(*RegisterPageDemoWebShop.PASSWORD).send_keys('abc123')
     self.driver.find_element(*RegisterPageDemoWebShop.CNF_PASSWORD).send_keys('abc123')
     sleep(5)
     self.driver.find_element(*RegisterPageDemoWebShop.REGISTER).click()
Exemplo n.º 15
0
    def test_expinfo(self):
        r = requests.get(self.url4, headers=con_login.common_header(self))

        print('打卡及经验显示')
        try:
            self.assertEqual(r.json()['msg'], 'success', 'fail')
            print('查询成功')
        except:
            print('查询失败', r.json())
            sleep(3)
Exemplo n.º 16
0
 def attack_all_urls_with_additions(self):
     domain = urlparse(self.config.start_page_url)
     domain = domain.netloc
     all_urls = self.database_manager.get_all_urls_to_domain(domain)
     for url in all_urls:
         if len(url.parameters) > 0:
             logging.debug("Now testing with url: {}".format(
                 url.toString()))
             if self.process_with_login:
                 self._handle_possible_logout()
             for parameter_to_attack in url.parameters:
                 empty_counter = 0
                 for vector in self._xss_vector.attack_vectors:
                     attack_url = url.scheme + "://" + url.domain + url.path + "?"
                     random_val = self._xss_vector.random_number_generator(
                         12)
                     for other_parameters in url.parameters:
                         if parameter_to_attack == other_parameters:
                             attack_url += other_parameters + "=" + str(
                                 url.parameters[other_parameters]
                                 [0]) if url.parameters[other_parameters][
                                     0] is not None else ""
                             attack_url += vector.replace(
                                 "XSS", str(random_val)) + "&"
                         else:
                             attack_url += other_parameters + "="
                             attack_url += url.parameters[other_parameters][
                                 0] if url.parameters[other_parameters][
                                     0] is not None else ""
                             attack_url += "&"
                     attack_url = attack_url[:-1]  # Removing the last "&
                     logging.debug("Attack with: {}".format(attack_url))
                     result, response_code = self._xss.attack(
                         attack_url, random_val)
                     if not self._check_login_status_with_cookies():
                         sleep(2000)
                         self._initial_login()
                         result, response_code = self._xss.attack(
                             attack_url, random_val)
                     if response_code is None:
                         continue
                     if response_code >= 400 or result == AttackResult.JSON:
                         empty_counter = 42
                     logging.debug("Result: {} - Response Code: {}".format(
                         result, response_code))
                     if result in (AttackResult.AttackSuccessfull,
                                   AttackResult.AttackFailed):
                         self.database_manager.insert_attack_result(
                             result, attack_url)
                         empty_counter = 0
                     else:
                         empty_counter += 1
                     if empty_counter > EMPTY_LIMIT:
                         break
Exemplo n.º 17
0
 def tearDown(self):
     # Видалення dummy-файла із затримкою на час його завантаження
     deleted = False
     i = 0
     while not deleted and i<30:
         try:
             self.report.file.delete()
             deleted = True
         except:
             sleep(10)
             i += 1
     if not deleted: print('file not deleted in ReportDownloadTest')
Exemplo n.º 18
0
    def scanPosturl(self,payload,newurl,data):
        
        #输出日志
        script = "var page = this; page.onConsoleMessage = function(msg) {page.browserLog.push(msg);};"
        self.browser.command_executor._commands['executePhantomScript'] = ('POST', '/session/$sessionId/phantom/execute')
        self.browser.execute('executePhantomScript', {'script': script, 'args': []})
        #发起GET请求,设置同域,最好的链接应该是POST请求的母链接
        self.browser.get(newurl)  
        sleep(1)
        winhandlers = self.browser.window_handles
        befhandler = winhandlers[0]
        #加载执行jquery.js
        jquery = open("jquery-3.4.1.min.js", "r").read() 
        self.browser.execute_script(jquery)
        #构造POST请求,打开新的标签页面
        request_type="'POST'"
        ajax_query = '''
            $.ajax('%s', {
            type: %s,
            data: %s, 
            headers: { "User-Agent": "Mozilla/5.0" },
            crossDomain: true,
            xhrFields: {
             withCredentials: true
            },
            success: function(str_response){var obj = window.open("about:blank");   
                        obj.document.write(str_response);   }
            });
            ''' % (newurl, request_type, data)
            
        ajax_query = ajax_query.replace("\n", "")


        resp = self.browser.execute_script("return " + ajax_query)
        time.sleep(2)
        newhandler = ""
        winhandlers = self.browser.window_handles
        for a in winhandlers:
            if(a != befhandler):
                newhandler = a 
        #切换至新的标签页(理论上仅有2个)
        self.browser.switch_to.window(newhandler)
        logs = self.browser.get_log('browser')
        log = []
        for l in logs:
            ldata = l['message'] 
            ldata = ldata[:ldata.rfind(" (:)")]
            log.append(ldata)
        self.addLog(log)
        self.addPagecontent(self.browser.page_source)
        
        self.addPagecontent(resp)
        self.checkPayloads(payload, self.pages,logs, newurl+json.dumps(data))
Exemplo n.º 19
0
 def addzifufangsi(self,goodbrand):
     driver = self.driver
     menu_loc = driver.find_element_by_name("menu-frame")
     driver.switch_to_frame(menu_loc)
     driver.find_element_by_link_text("配送方式").click()
     driver.switch_to_default_content()
     menu_loc1 = driver.find_element_by_name("main-frame")
     driver.switch_to_frame(menu_loc1) 
     sleep(2)  
     driver.find_element_by_link_text("添加品牌").click()
     sleep(2)
     driver.find_element_by_name("brand_name").send_keys(goodbrand)
     driver.find_element_by_xpath("/html/body/div[1]/form/table/tbody/tr[7]/td/input[1]").click()
     driver.switch_to_default_content()
Exemplo n.º 20
0
    def writeActuatorDataToDbms(self):
        redis_subscribe = self.redis_connection.pubsub()
        redis_subscribe.subscribe("ActuatorData_Channel")

        for m in redis_subscribe.listen():
            msg = redis_subscribe.get_message()['data']
            if (msg['data'] != 1):
                sleep(0.5)
                data = redis_subscribe.get_message()['data']
                print(data)

        self.registerActuatorDataDbmsListener()
        redis_subscribe.unsubscribe("ActuatorData_Channel")
        self.redis_connection.close()
Exemplo n.º 21
0
async def process_messages():
    handlers = {}
    channels = {}
    for i, message in messages:
        if i not in handlers:
            channel = Channel()
            handler = message_handler(str(i), channel)
            loop.create_task(handler)
            handlers[i] = handler
            channels[i] = channel
        channel = channels[i]

        channel.receive(message)
        sleep(.5)
Exemplo n.º 22
0
 def run(self):
     while True :
         if nextPageUrl.empty():
             sleep(5)#等一等线程1
         else :
             print("这里是线程2开始启动!")
             nextUrl=nextPageUrl.get()
             soup = publicMethod(nextUrl)
             jsonData= soup.text#json数据字符串化
             Dict=json.loads(jsonData)#转换为dict类型
             print(Dict)
             NewsHrefList=Dict.get("data").get("article")#list里面嵌套dict
             for News in NewsHrefList:
                 href = News.get("href")
                 print(href)
                 print(NewsHrefList)
Exemplo n.º 23
0
 def goodbrand(self):
     driver = self.driver
     goodbrand = 'ap'+str(time()*1000)[6:]
     menu_loc = driver.find_element_by_name("menu-frame")
     driver.switch_to_frame(menu_loc)
     driver.find_element_by_link_text("商品品牌").click()
     driver.switch_to_default_content()
     menu_loc1 = driver.find_element_by_name("main-frame")
     driver.switch_to_frame(menu_loc1) 
     sleep(2)  
     driver.find_element_by_link_text("添加品牌").click()
     sleep(2)
     driver.find_element_by_name("brand_name").send_keys(goodbrand)
     driver.find_element_by_xpath("/html/body/div[1]/form/table/tbody/tr[7]/td/input[1]").click()
     driver.switch_to_default_content()
     return(goodbrand)
Exemplo n.º 24
0
    def test_sleep_cancel(self):
        def gen():
            when = yield
            self.assertAlmostEqual(10.0, when)
            yield 0

        loop = test_utils.TestLoop(gen)
        self.addCleanup(loop.close)

        t = tasks.Task(tasks.sleep(10.0, 'yeah', loop=loop), loop=loop)

        handle = None
        orig_call_later = loop.call_later

        def call_later(self, delay, callback, *args):
            nonlocal handle
            handle = orig_call_later(self, delay, callback, *args)
            return handle

        loop.call_later = call_later
        test_utils.run_briefly(loop)

        self.assertFalse(handle._cancelled)

        t.cancel()
        test_utils.run_briefly(loop)
        self.assertTrue(handle._cancelled)
Exemplo n.º 25
0
 def readPassWord(self):
     print("开始破解:")
     while True:
         try:
             myStr = self.file.readline()
             if not myStr:
                 break
             bool1 = self.test_connect(myStr)
             if bool1:
                 print("密码正确:", myStr)
                 break
             else:
                 print("密码错误:" + myStr)
             sleep(3)
         except:
             continue
Exemplo n.º 26
0
        def test():
            t = tasks.Task(putter(), loop=loop)
            yield from tasks.sleep(0.01, loop=loop)

            # The putter is blocked after putting two items.
            self.assertEqual([0, 1], have_been_put)
            self.assertEqual(0, q.get_nowait())

            # Let the putter resume and put last item.
            yield from tasks.sleep(0.01, loop=loop)
            self.assertEqual([0, 1, 2], have_been_put)
            self.assertEqual(1, q.get_nowait())
            self.assertEqual(2, q.get_nowait())

            self.assertTrue(t.done())
            self.assertTrue(t.result())
Exemplo n.º 27
0
 def crack_password(self):
     print('开始破解 wifi 密码。')
     while True:
         try:
             my_str = self.file.readline()
             if not my_str:
                 break
             c = self.test_connect(my_str)
             if c:
                 print('bingo, 密码准确:', my_str)
                 break
             else:
                 print('密码错误:' + my_str)
             sleep(3)
         except:
             continue
Exemplo n.º 28
0
    def test_wait_with_exception(self):
        def gen():
            when = yield
            self.assertAlmostEqual(0.1, when)
            when = yield 0
            self.assertAlmostEqual(0.15, when)
            yield 0.15

        loop = test_utils.TestLoop(gen)
        self.addCleanup(loop.close)

        a = tasks.Task(tasks.sleep(0.1, loop=loop), loop=loop)

        @tasks.coroutine
        def sleeper():
            yield from tasks.sleep(0.15, loop=loop)
            raise ZeroDivisionError('really')

        b = tasks.Task(sleeper(), loop=loop)

        @tasks.coroutine
        def foo():
            done, pending = yield from tasks.wait([b, a], loop=loop)
            self.assertEqual(len(done), 2)
            self.assertEqual(pending, set())
            errors = set(f for f in done if f.exception() is not None)
            self.assertEqual(len(errors), 1)

        loop.run_until_complete(tasks.Task(foo(), loop=loop))
        self.assertAlmostEqual(0.15, loop.time())

        loop.run_until_complete(tasks.Task(foo(), loop=loop))
        self.assertAlmostEqual(0.15, loop.time())
Exemplo n.º 29
0
    def test_wait_first_exception_in_wait(self):
        def gen():
            when = yield
            self.assertAlmostEqual(10.0, when)
            when = yield 0
            self.assertAlmostEqual(0.01, when)
            yield 0.01

        loop = test_utils.TestLoop(gen)
        self.addCleanup(loop.close)

        # first_exception, exception during waiting
        a = tasks.Task(tasks.sleep(10.0, loop=loop), loop=loop)

        @tasks.coroutine
        def exc():
            yield from tasks.sleep(0.01, loop=loop)
            raise ZeroDivisionError('err')

        b = tasks.Task(exc(), loop=loop)
        task = tasks.wait([b, a], return_when=tasks.FIRST_EXCEPTION, loop=loop)

        done, pending = loop.run_until_complete(task)
        self.assertEqual({b}, done)
        self.assertEqual({a}, pending)
        self.assertAlmostEqual(0.01, loop.time())

        # move forward to close generator
        loop.advance_time(10)
        loop.run_until_complete(tasks.wait([a, b], loop=loop))
Exemplo n.º 30
0
    def test_wait_with_exception(self):

        def gen():
            when = yield
            self.assertAlmostEqual(0.1, when)
            when = yield 0
            self.assertAlmostEqual(0.15, when)
            yield 0.15

        loop = test_utils.TestLoop(gen)
        self.addCleanup(loop.close)

        a = tasks.Task(tasks.sleep(0.1, loop=loop), loop=loop)

        @tasks.coroutine
        def sleeper():
            yield from tasks.sleep(0.15, loop=loop)
            raise ZeroDivisionError('really')

        b = tasks.Task(sleeper(), loop=loop)

        @tasks.coroutine
        def foo():
            done, pending = yield from tasks.wait([b, a], loop=loop)
            self.assertEqual(len(done), 2)
            self.assertEqual(pending, set())
            errors = set(f for f in done if f.exception() is not None)
            self.assertEqual(len(errors), 1)

        loop.run_until_complete(tasks.Task(foo(), loop=loop))
        self.assertAlmostEqual(0.15, loop.time())

        loop.run_until_complete(tasks.Task(foo(), loop=loop))
        self.assertAlmostEqual(0.15, loop.time())
Exemplo n.º 31
0
    def test_sleep_cancel(self):

        def gen():
            when = yield
            self.assertAlmostEqual(10.0, when)
            yield 0

        loop = test_utils.TestLoop(gen)
        self.addCleanup(loop.close)

        t = tasks.Task(tasks.sleep(10.0, 'yeah', loop=loop),
                       loop=loop)

        handle = None
        orig_call_later = loop.call_later

        def call_later(self, delay, callback, *args):
            nonlocal handle
            handle = orig_call_later(self, delay, callback, *args)
            return handle

        loop.call_later = call_later
        test_utils.run_briefly(loop)

        self.assertFalse(handle._cancelled)

        t.cancel()
        test_utils.run_briefly(loop)
        self.assertTrue(handle._cancelled)
Exemplo n.º 32
0
    def test_wait_first_exception_in_wait(self):

        def gen():
            when = yield
            self.assertAlmostEqual(10.0, when)
            when = yield 0
            self.assertAlmostEqual(0.01, when)
            yield 0.01

        loop = test_utils.TestLoop(gen)
        self.addCleanup(loop.close)

        # first_exception, exception during waiting
        a = tasks.Task(tasks.sleep(10.0, loop=loop), loop=loop)

        @tasks.coroutine
        def exc():
            yield from tasks.sleep(0.01, loop=loop)
            raise ZeroDivisionError('err')

        b = tasks.Task(exc(), loop=loop)
        task = tasks.wait([b, a], return_when=tasks.FIRST_EXCEPTION,
                          loop=loop)

        done, pending = loop.run_until_complete(task)
        self.assertEqual({b}, done)
        self.assertEqual({a}, pending)
        self.assertAlmostEqual(0.01, loop.time())

        # move forward to close generator
        loop.advance_time(10)
        loop.run_until_complete(tasks.wait([a, b], loop=loop))
Exemplo n.º 33
0
        def test():
            t = tasks.Task(putter(), loop=loop)
            yield from tasks.sleep(0.01, loop=loop)

            # The putter is blocked after putting two items.
            self.assertEqual([0, 1], have_been_put)
            self.assertEqual(0, q.get_nowait())

            # Let the putter resume and put last item.
            yield from tasks.sleep(0.01, loop=loop)
            self.assertEqual([0, 1, 2], have_been_put)
            self.assertEqual(1, q.get_nowait())
            self.assertEqual(2, q.get_nowait())

            self.assertTrue(t.done())
            self.assertTrue(t.result())
Exemplo n.º 34
0
 def task():
     nonlocal x
     while x < 10:
         waiters.append(tasks.sleep(0.1, loop=loop))
         yield from waiters[-1]
         x += 1
         if x == 2:
             loop.stop()
Exemplo n.º 35
0
 def readPassWord(self):
     print("开始破解:")
     #while True:
     for line in self.file:
         myStr = line.strip()
         try:
             bool1 = self.test_connect(myStr)
             if bool1:
                 print("password right for ssid %s : %s" %
                       (self.ssid, myStr))
                 break
             # else:
             #     print("password wrong:"+myStr)
             sleep(1)
         except:
             continue
     print('Crack Done. Nothing.')
Exemplo n.º 36
0
        async def f_retry(self, *args, **kwargs):
            if not iscoroutine(func):
                f = coroutine(func)
            else:
                f = func

            mtries, mdelay = tries, delay
            while mtries > 1:
                try:
                    return await f(self, *args, **kwargs)
                except exceptions:
                    if logger:
                        logger.info('Retrying %s after %s seconds', f.__name__, mdelay)
                    sleep(mdelay)
                    mtries -= 1
                    mdelay *= backoff
            return await f(self, *args, **kwargs)
Exemplo n.º 37
0
 def sleeper(dt, x):
     nonlocal time_shifted
     yield from tasks.sleep(dt, loop=loop)
     completed.add(x)
     if not time_shifted and 'a' in completed and 'b' in completed:
         time_shifted = True
         loop.advance_time(0.14)
     return x
Exemplo n.º 38
0
 def task():
     nonlocal x
     while x < 10:
         waiters.append(tasks.sleep(0.1, loop=loop))
         yield from waiters[-1]
         x += 1
         if x == 2:
             loop.stop()
Exemplo n.º 39
0
def run_until(loop, pred, timeout=30):
    deadline = time.time() + timeout
    while not pred():
        if timeout is not None:
            timeout = deadline - time.time()
            if timeout <= 0:
                raise futures.TimeoutError()
        loop.run_until_complete(tasks.sleep(0.001, loop=loop))
Exemplo n.º 40
0
def run_until(loop, pred, timeout=support.SHORT_TIMEOUT):
    deadline = time.monotonic() + timeout
    while not pred():
        if timeout is not None:
            timeout = deadline - time.monotonic()
            if timeout <= 0:
                raise futures.TimeoutError()
        loop.run_until_complete(tasks.sleep(0.001))
Exemplo n.º 41
0
 def sleeper(dt, x):
     nonlocal time_shifted
     yield from tasks.sleep(dt, loop=loop)
     completed.add(x)
     if not time_shifted and 'a' in completed and 'b' in completed:
         time_shifted = True
         loop.advance_time(0.14)
     return x
Exemplo n.º 42
0
def run_until(loop, pred, timeout=30):
    deadline = time.time() + timeout
    while not pred():
        if timeout is not None:
            timeout = deadline - time.time()
            if timeout <= 0:
                raise futures.TimeoutError()
        loop.run_until_complete(tasks.sleep(0.001, loop=loop))
Exemplo n.º 43
0
 def _handle_possible_logout(self):
     """
     Handles a possible logout
     :return: True is we were not logged out and false if we were logged out
     """
     retries = 0
     max_retries = 3
     while retries < max_retries:
         logging.debug("Start with relogin try number: {}".format(retries +
                                                                  1))
         page_with_login_form = self._get_webpage(
             self.user.url_with_login_form)
         login_form, login_clickable = self._find_form_with_special_parameters(
             page_with_login_form, self.user.login_data,
             self.interactive_login_form_search)
         if login_form is not None:
             #So login_form is visible, we are logged out
             logging.debug("Logout detected, visible login form...")
             hopefully_reloggedin_page = self._login_and_return_webpage(
                 login_form, page_with_login_form, self.user.login_data,
                 login_clickable)
             if hopefully_reloggedin_page is None:
                 retries += 1
                 logging.debug(
                     "Relogin attempt number {} failed".format(retries))
                 sleep(2000)
             else:
                 login_form, login_clickable = self._find_form_with_special_parameters(
                     hopefully_reloggedin_page, self.user.login_data)
                 if login_form is None:
                     logging.debug("Relogin successfull...continue")
                     return False
                 else:
                     logging.debug(
                         "Relogin fails, loginform is still present...")
                     retries += 1
                     sleep(2000)
         else:
             logging.debug(
                 "Login form is not there... we can continue (I hope)")
             if retries < 3:
                 return True
             else:
                 return False
     raise LoginFailed("We cannot login anymore... stop crawling here")
Exemplo n.º 44
0
    def test_wait_errors(self):
        self.assertRaises(
            ValueError, self.loop.run_until_complete,
            tasks.wait(set(), loop=self.loop))

        self.assertRaises(
            ValueError, self.loop.run_until_complete,
            tasks.wait([tasks.sleep(10.0, loop=self.loop)],
                       return_when=-1, loop=self.loop))
Exemplo n.º 45
0
 def add_getter():
     q = queues.Queue(loop=loop)
     # Start a task that waits to get.
     tasks.Task(q.get(), loop=loop)
     # Let it start waiting.
     yield from tasks.sleep(0.1, loop=loop)
     self.assertTrue('_getters[1]' in fn(q))
     # resume q.get coroutine to finish generator
     q.put_nowait(0)
Exemplo n.º 46
0
    def test_handshake_timeout(self):
        # bpo-29970: Check that a connection is aborted if handshake is not
        # completed in timeout period, instead of remaining open indefinitely
        ssl_proto = self.ssl_protocol()
        transport = self.connection_made(ssl_proto)

        with test_utils.disable_logger():
            self.loop.run_until_complete(tasks.sleep(0.2, loop=self.loop))
        self.assertTrue(transport.abort.called)
Exemplo n.º 47
0
    def test_handshake_timeout(self):
        # bpo-29970: Check that a connection is aborted if handshake is not
        # completed in timeout period, instead of remaining open indefinitely
        ssl_proto = self.ssl_protocol()
        transport = self.connection_made(ssl_proto)

        with test_utils.disable_logger():
            self.loop.run_until_complete(tasks.sleep(0.2, loop=self.loop))
        self.assertTrue(transport.abort.called)
Exemplo n.º 48
0
 def test_run_until_complete_timeout(self):
     t0 = self.loop.time()
     task = tasks.async(tasks.sleep(0.2, loop=self.loop), loop=self.loop)
     self.assertRaises(futures.TimeoutError,
                       self.loop.run_until_complete,
                       task, timeout=0.1)
     t1 = self.loop.time()
     self.assertTrue(0.08 <= t1-t0 <= 0.12, t1-t0)
     self.loop.run_until_complete(task)
     t2 = self.loop.time()
     self.assertTrue(0.18 <= t2-t0 <= 0.22, t2-t0)
Exemplo n.º 49
0
    def test_as_completed_concurrent(self):

        def gen():
            when = yield
            self.assertAlmostEqual(0.05, when)
            when = yield 0
            self.assertAlmostEqual(0.05, when)
            yield 0.05

        loop = test_utils.TestLoop(gen)
        self.addCleanup(loop.close)

        a = tasks.sleep(0.05, 'a', loop=loop)
        b = tasks.sleep(0.05, 'b', loop=loop)
        fs = {a, b}
        futs = list(tasks.as_completed(fs, loop=loop))
        self.assertEqual(len(futs), 2)
        waiter = tasks.wait(futs, loop=loop)
        done, pending = loop.run_until_complete(waiter)
        self.assertEqual(set(f.result() for f in done), {'a', 'b'})
Exemplo n.º 50
0
    def test_as_completed_with_timeout(self):

        def gen():
            when = yield
            self.assertAlmostEqual(0.12, when)
            when = yield 0
            self.assertAlmostEqual(0.1, when)
            when = yield 0
            self.assertAlmostEqual(0.15, when)
            when = yield 0.1
            self.assertAlmostEqual(0.12, when)
            yield 0.02

        loop = test_utils.TestLoop(gen)
        self.addCleanup(loop.close)

        a = tasks.sleep(0.1, 'a', loop=loop)
        b = tasks.sleep(0.15, 'b', loop=loop)

        @tasks.coroutine
        def foo():
            values = []
            for f in tasks.as_completed([a, b], timeout=0.12, loop=loop):
                try:
                    v = yield from f
                    values.append((1, v))
                except futures.TimeoutError as exc:
                    values.append((2, exc))
            return values

        res = loop.run_until_complete(tasks.Task(foo(), loop=loop))
        self.assertEqual(len(res), 2, res)
        self.assertEqual(res[0], (1, 'a'))
        self.assertEqual(res[1][0], 2)
        self.assertIsInstance(res[1][1], futures.TimeoutError)
        self.assertAlmostEqual(0.12, loop.time())

        # move forward to close generator
        loop.advance_time(10)
        loop.run_until_complete(tasks.wait([a, b], loop=loop))
Exemplo n.º 51
0
    def test_as_completed_reverse_wait(self):

        def gen():
            yield 0
            yield 0.05
            yield 0

        loop = test_utils.TestLoop(gen)
        self.addCleanup(loop.close)

        a = tasks.sleep(0.05, 'a', loop=loop)
        b = tasks.sleep(0.10, 'b', loop=loop)
        fs = {a, b}
        futs = list(tasks.as_completed(fs, loop=loop))
        self.assertEqual(len(futs), 2)

        x = loop.run_until_complete(futs[1])
        self.assertEqual(x, 'a')
        self.assertAlmostEqual(0.05, loop.time())
        loop.advance_time(0.05)
        y = loop.run_until_complete(futs[0])
        self.assertEqual(y, 'b')
        self.assertAlmostEqual(0.10, loop.time())
Exemplo n.º 52
0
 def exc():
     yield from tasks.sleep(0.01, loop=loop)
     raise ZeroDivisionError('err')
Exemplo n.º 53
0
 def cb():
     self.loop.stop()
     yield from tasks.sleep(0.1, loop=self.loop)
Exemplo n.º 54
0
 def task():
     yield from tasks.sleep(10.0, loop=loop)
     return 12
Exemplo n.º 55
0
 def sleeper():
     yield from tasks.sleep(10, loop=loop)
Exemplo n.º 56
0
 def task():
     t.cancel()
     self.assertTrue(t._must_cancel)  # White-box test.
     # The sleep should be cancelled immediately.
     yield from tasks.sleep(100, loop=loop)
     return 12
Exemplo n.º 57
0
 def sleeper():
     yield from tasks.sleep(0.15, loop=loop)
     raise ZeroDivisionError('really')
Exemplo n.º 58
0
 def sleeper(dt, arg):
     yield from tasks.sleep(dt/2, loop=loop)
     res = yield from tasks.sleep(dt/2, arg, loop=loop)
     return res
Exemplo n.º 59
0
 def sleep(dt):
     nonlocal sleepfut
     sleepfut = tasks.sleep(dt, loop=loop)
     yield from sleepfut
Exemplo n.º 60
0
 def foo():
     yield from tasks.sleep(0.2, loop=loop)
     return 'done'