| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -29,7 +29,7 @@ def seed_athena_server(host, port): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  with Timeout(2, 'HTTP Server seeding failed'): | 
					 | 
					 | 
					 | 
					  with Timeout(2, 'HTTP Server seeding failed'): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    while True: | 
					 | 
					 | 
					 | 
					    while True: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      try: | 
					 | 
					 | 
					 | 
					      try: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        requests.put(f'http://{host}:{port}/qlog.bz2', data='', timeout=10) | 
					 | 
					 | 
					 | 
					        requests.put(f'http://{host}:{port}/qlog.zst', data='', timeout=10) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        break | 
					 | 
					 | 
					 | 
					        break | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      except requests.exceptions.ConnectionError: | 
					 | 
					 | 
					 | 
					      except requests.exceptions.ConnectionError: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        time.sleep(0.1) | 
					 | 
					 | 
					 | 
					        time.sleep(0.1) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -174,54 +174,59 @@ class TestAthenadMethods: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    assert resp, 'list empty!' | 
					 | 
					 | 
					 | 
					    assert resp, 'list empty!' | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    assert len(resp) == len(expected) | 
					 | 
					 | 
					 | 
					    assert len(resp) == len(expected) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  def test_strip_bz2_extension(self): | 
					 | 
					 | 
					 | 
					  def test_strip_extension(self): | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    # any requested log file with an invalid extension won't return as existing | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    fn = self._create_file('qlog.bz2') | 
					 | 
					 | 
					 | 
					    fn = self._create_file('qlog.bz2') | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    if fn.endswith('.bz2'): | 
					 | 
					 | 
					 | 
					    if fn.endswith('.bz2'): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      assert athenad.strip_bz2_extension(fn) == fn[:-4] | 
					 | 
					 | 
					 | 
					      assert athenad.strip_zst_extension(fn) == fn | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    fn = self._create_file('qlog.zst') | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    if fn.endswith('.zst'): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      assert athenad.strip_zst_extension(fn) == fn[:-4] | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  @pytest.mark.parametrize("compress", [True, False]) | 
					 | 
					 | 
					 | 
					  @pytest.mark.parametrize("compress", [True, False]) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  def test_do_upload(self, host, compress): | 
					 | 
					 | 
					 | 
					  def test_do_upload(self, host, compress): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    # random bytes to ensure rather large object post-compression | 
					 | 
					 | 
					 | 
					    # random bytes to ensure rather large object post-compression | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    fn = self._create_file('qlog', data=os.urandom(10000 * 1024)) | 
					 | 
					 | 
					 | 
					    fn = self._create_file('qlog', data=os.urandom(10000 * 1024)) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    upload_fn = fn + ('.bz2' if compress else '') | 
					 | 
					 | 
					 | 
					    upload_fn = fn + ('.zst' if compress else '') | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    item = athenad.UploadItem(path=upload_fn, url="http://localhost:1238", headers={}, created_at=int(time.time()*1000), id='') | 
					 | 
					 | 
					 | 
					    item = athenad.UploadItem(path=upload_fn, url="http://localhost:1238", headers={}, created_at=int(time.time()*1000), id='') | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    with pytest.raises(requests.exceptions.ConnectionError): | 
					 | 
					 | 
					 | 
					    with pytest.raises(requests.exceptions.ConnectionError): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      athenad._do_upload(item) | 
					 | 
					 | 
					 | 
					      athenad._do_upload(item) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    item = athenad.UploadItem(path=upload_fn, url=f"{host}/qlog.bz2", headers={}, created_at=int(time.time()*1000), id='') | 
					 | 
					 | 
					 | 
					    item = athenad.UploadItem(path=upload_fn, url=f"{host}/qlog.zst", headers={}, created_at=int(time.time()*1000), id='') | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    resp = athenad._do_upload(item) | 
					 | 
					 | 
					 | 
					    resp = athenad._do_upload(item) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    assert resp.status_code == 201 | 
					 | 
					 | 
					 | 
					    assert resp.status_code == 201 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  def test_upload_file_to_url(self, host): | 
					 | 
					 | 
					 | 
					  def test_upload_file_to_url(self, host): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    fn = self._create_file('qlog.bz2') | 
					 | 
					 | 
					 | 
					    fn = self._create_file('qlog.zst') | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    resp = dispatcher["uploadFileToUrl"]("qlog.bz2", f"{host}/qlog.bz2", {}) | 
					 | 
					 | 
					 | 
					    resp = dispatcher["uploadFileToUrl"]("qlog.zst", f"{host}/qlog.zst", {}) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    assert resp['enqueued'] == 1 | 
					 | 
					 | 
					 | 
					    assert resp['enqueued'] == 1 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    assert 'failed' not in resp | 
					 | 
					 | 
					 | 
					    assert 'failed' not in resp | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    assert {"path": fn, "url": f"{host}/qlog.bz2", "headers": {}}.items() <= resp['items'][0].items() | 
					 | 
					 | 
					 | 
					    assert {"path": fn, "url": f"{host}/qlog.zst", "headers": {}}.items() <= resp['items'][0].items() | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    assert resp['items'][0].get('id') is not None | 
					 | 
					 | 
					 | 
					    assert resp['items'][0].get('id') is not None | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    assert athenad.upload_queue.qsize() == 1 | 
					 | 
					 | 
					 | 
					    assert athenad.upload_queue.qsize() == 1 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  def test_upload_file_to_url_duplicate(self, host): | 
					 | 
					 | 
					 | 
					  def test_upload_file_to_url_duplicate(self, host): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    self._create_file('qlog.bz2') | 
					 | 
					 | 
					 | 
					    self._create_file('qlog.zst') | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    url1 = f"{host}/qlog.bz2?sig=sig1" | 
					 | 
					 | 
					 | 
					    url1 = f"{host}/qlog.zst?sig=sig1" | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    dispatcher["uploadFileToUrl"]("qlog.bz2", url1, {}) | 
					 | 
					 | 
					 | 
					    dispatcher["uploadFileToUrl"]("qlog.zst", url1, {}) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    # Upload same file again, but with different signature | 
					 | 
					 | 
					 | 
					    # Upload same file again, but with different signature | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    url2 = f"{host}/qlog.bz2?sig=sig2" | 
					 | 
					 | 
					 | 
					    url2 = f"{host}/qlog.zst?sig=sig2" | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    resp = dispatcher["uploadFileToUrl"]("qlog.bz2", url2, {}) | 
					 | 
					 | 
					 | 
					    resp = dispatcher["uploadFileToUrl"]("qlog.zst", url2, {}) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    assert resp == {'enqueued': 0, 'items': []} | 
					 | 
					 | 
					 | 
					    assert resp == {'enqueued': 0, 'items': []} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  def test_upload_file_to_url_does_not_exist(self, host): | 
					 | 
					 | 
					 | 
					  def test_upload_file_to_url_does_not_exist(self, host): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    not_exists_resp = dispatcher["uploadFileToUrl"]("does_not_exist.bz2", "http://localhost:1238", {}) | 
					 | 
					 | 
					 | 
					    not_exists_resp = dispatcher["uploadFileToUrl"]("does_not_exist.zst", "http://localhost:1238", {}) | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    assert not_exists_resp == {'enqueued': 0, 'items': [], 'failed': ['does_not_exist.bz2']} | 
					 | 
					 | 
					 | 
					    assert not_exists_resp == {'enqueued': 0, 'items': [], 'failed': ['does_not_exist.zst']} | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  @with_upload_handler | 
					 | 
					 | 
					 | 
					  @with_upload_handler | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  def test_upload_handler(self, host): | 
					 | 
					 | 
					 | 
					  def test_upload_handler(self, host): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    fn = self._create_file('qlog.bz2') | 
					 | 
					 | 
					 | 
					    fn = self._create_file('qlog.zst') | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    item = athenad.UploadItem(path=fn, url=f"{host}/qlog.bz2", headers={}, created_at=int(time.time()*1000), id='', allow_cellular=True) | 
					 | 
					 | 
					 | 
					    item = athenad.UploadItem(path=fn, url=f"{host}/qlog.zst", headers={}, created_at=int(time.time()*1000), id='', allow_cellular=True) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    athenad.upload_queue.put_nowait(item) | 
					 | 
					 | 
					 | 
					    athenad.upload_queue.put_nowait(item) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    self._wait_for_upload() | 
					 | 
					 | 
					 | 
					    self._wait_for_upload() | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -236,8 +241,8 @@ class TestAthenadMethods: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  def test_upload_handler_retry(self, mocker, host, status, retry): | 
					 | 
					 | 
					 | 
					  def test_upload_handler_retry(self, mocker, host, status, retry): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    mock_put = mocker.patch('requests.put') | 
					 | 
					 | 
					 | 
					    mock_put = mocker.patch('requests.put') | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    mock_put.return_value.status_code = status | 
					 | 
					 | 
					 | 
					    mock_put.return_value.status_code = status | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    fn = self._create_file('qlog.bz2') | 
					 | 
					 | 
					 | 
					    fn = self._create_file('qlog.zst') | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    item = athenad.UploadItem(path=fn, url=f"{host}/qlog.bz2", headers={}, created_at=int(time.time()*1000), id='', allow_cellular=True) | 
					 | 
					 | 
					 | 
					    item = athenad.UploadItem(path=fn, url=f"{host}/qlog.zst", headers={}, created_at=int(time.time()*1000), id='', allow_cellular=True) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    athenad.upload_queue.put_nowait(item) | 
					 | 
					 | 
					 | 
					    athenad.upload_queue.put_nowait(item) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    self._wait_for_upload() | 
					 | 
					 | 
					 | 
					    self._wait_for_upload() | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -251,8 +256,8 @@ class TestAthenadMethods: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  @with_upload_handler | 
					 | 
					 | 
					 | 
					  @with_upload_handler | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  def test_upload_handler_timeout(self): | 
					 | 
					 | 
					 | 
					  def test_upload_handler_timeout(self): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    """When an upload times out or fails to connect it should be placed back in the queue""" | 
					 | 
					 | 
					 | 
					    """When an upload times out or fails to connect it should be placed back in the queue""" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    fn = self._create_file('qlog.bz2') | 
					 | 
					 | 
					 | 
					    fn = self._create_file('qlog.zst') | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    item = athenad.UploadItem(path=fn, url="http://localhost:44444/qlog.bz2", headers={}, created_at=int(time.time()*1000), id='', allow_cellular=True) | 
					 | 
					 | 
					 | 
					    item = athenad.UploadItem(path=fn, url="http://localhost:44444/qlog.zst", headers={}, created_at=int(time.time()*1000), id='', allow_cellular=True) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    item_no_retry = replace(item, retry_count=MAX_RETRY_COUNT) | 
					 | 
					 | 
					 | 
					    item_no_retry = replace(item, retry_count=MAX_RETRY_COUNT) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    athenad.upload_queue.put_nowait(item_no_retry) | 
					 | 
					 | 
					 | 
					    athenad.upload_queue.put_nowait(item_no_retry) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -272,7 +277,7 @@ class TestAthenadMethods: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  @with_upload_handler | 
					 | 
					 | 
					 | 
					  @with_upload_handler | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  def test_cancel_upload(self): | 
					 | 
					 | 
					 | 
					  def test_cancel_upload(self): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    item = athenad.UploadItem(path="qlog.bz2", url="http://localhost:44444/qlog.bz2", headers={}, | 
					 | 
					 | 
					 | 
					    item = athenad.UploadItem(path="qlog.zst", url="http://localhost:44444/qlog.zst", headers={}, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                              created_at=int(time.time()*1000), id='id', allow_cellular=True) | 
					 | 
					 | 
					 | 
					                              created_at=int(time.time()*1000), id='id', allow_cellular=True) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    athenad.upload_queue.put_nowait(item) | 
					 | 
					 | 
					 | 
					    athenad.upload_queue.put_nowait(item) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    dispatcher["cancelUpload"](item.id) | 
					 | 
					 | 
					 | 
					    dispatcher["cancelUpload"](item.id) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -291,8 +296,8 @@ class TestAthenadMethods: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    ts = int(t_future.strftime("%s")) * 1000 | 
					 | 
					 | 
					 | 
					    ts = int(t_future.strftime("%s")) * 1000 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    # Item that would time out if actually uploaded | 
					 | 
					 | 
					 | 
					    # Item that would time out if actually uploaded | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    fn = self._create_file('qlog.bz2') | 
					 | 
					 | 
					 | 
					    fn = self._create_file('qlog.zst') | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    item = athenad.UploadItem(path=fn, url="http://localhost:44444/qlog.bz2", headers={}, created_at=ts, id='', allow_cellular=True) | 
					 | 
					 | 
					 | 
					    item = athenad.UploadItem(path=fn, url="http://localhost:44444/qlog.zst", headers={}, created_at=ts, id='', allow_cellular=True) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    athenad.upload_queue.put_nowait(item) | 
					 | 
					 | 
					 | 
					    athenad.upload_queue.put_nowait(item) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    self._wait_for_upload() | 
					 | 
					 | 
					 | 
					    self._wait_for_upload() | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -306,8 +311,8 @@ class TestAthenadMethods: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  @with_upload_handler | 
					 | 
					 | 
					 | 
					  @with_upload_handler | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  def test_list_upload_queue_current(self, host: str): | 
					 | 
					 | 
					 | 
					  def test_list_upload_queue_current(self, host: str): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    fn = self._create_file('qlog.bz2') | 
					 | 
					 | 
					 | 
					    fn = self._create_file('qlog.zst') | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    item = athenad.UploadItem(path=fn, url=f"{host}/qlog.bz2", headers={}, created_at=int(time.time()*1000), id='', allow_cellular=True) | 
					 | 
					 | 
					 | 
					    item = athenad.UploadItem(path=fn, url=f"{host}/qlog.zst", headers={}, created_at=int(time.time()*1000), id='', allow_cellular=True) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    athenad.upload_queue.put_nowait(item) | 
					 | 
					 | 
					 | 
					    athenad.upload_queue.put_nowait(item) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    self._wait_for_upload() | 
					 | 
					 | 
					 | 
					    self._wait_for_upload() | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -317,7 +322,7 @@ class TestAthenadMethods: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    assert items[0]['current'] | 
					 | 
					 | 
					 | 
					    assert items[0]['current'] | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  def test_list_upload_queue(self): | 
					 | 
					 | 
					 | 
					  def test_list_upload_queue(self): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    item = athenad.UploadItem(path="qlog.bz2", url="http://localhost:44444/qlog.bz2", headers={}, | 
					 | 
					 | 
					 | 
					    item = athenad.UploadItem(path="qlog.zst", url="http://localhost:44444/qlog.zst", headers={}, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                              created_at=int(time.time()*1000), id='id', allow_cellular=True) | 
					 | 
					 | 
					 | 
					                              created_at=int(time.time()*1000), id='id', allow_cellular=True) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    athenad.upload_queue.put_nowait(item) | 
					 | 
					 | 
					 | 
					    athenad.upload_queue.put_nowait(item) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |