[test/test_socks] Test with local SOCKS servers
This commit is contained in:
		
							parent
							
								
									edaa23f822
								
							
						
					
					
						commit
						e21f17fc86
					
				
					 4 changed files with 51 additions and 3 deletions
				
			
		
							
								
								
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							| 
						 | 
					@ -36,3 +36,4 @@ test/local_parameters.json
 | 
				
			||||||
youtube-dl.zsh
 | 
					youtube-dl.zsh
 | 
				
			||||||
.idea
 | 
					.idea
 | 
				
			||||||
.idea/*
 | 
					.idea/*
 | 
				
			||||||
 | 
					tmp/
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,6 +7,9 @@ python:
 | 
				
			||||||
  - "3.4"
 | 
					  - "3.4"
 | 
				
			||||||
  - "3.5"
 | 
					  - "3.5"
 | 
				
			||||||
sudo: false
 | 
					sudo: false
 | 
				
			||||||
 | 
					install:
 | 
				
			||||||
 | 
					  - bash ./devscripts/install_srelay.sh
 | 
				
			||||||
 | 
					  - export PATH=$PATH:$(pwd)/tmp/srelay-0.4.8b6
 | 
				
			||||||
script: nosetests test --verbose
 | 
					script: nosetests test --verbose
 | 
				
			||||||
notifications:
 | 
					notifications:
 | 
				
			||||||
  email:
 | 
					  email:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										8
									
								
								devscripts/install_srelay.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										8
									
								
								devscripts/install_srelay.sh
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir -p tmp && cd tmp
 | 
				
			||||||
 | 
					wget -N http://downloads.sourceforge.net/project/socks-relay/socks-relay/srelay-0.4.8/srelay-0.4.8b6.tar.gz
 | 
				
			||||||
 | 
					tar zxvf srelay-0.4.8b6.tar.gz
 | 
				
			||||||
 | 
					cd srelay-0.4.8b6
 | 
				
			||||||
 | 
					./configure
 | 
				
			||||||
 | 
					make
 | 
				
			||||||
| 
						 | 
					@ -8,11 +8,20 @@ import sys
 | 
				
			||||||
import unittest
 | 
					import unittest
 | 
				
			||||||
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 | 
					sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from test.helper import (FakeYDL, get_params)
 | 
					import random
 | 
				
			||||||
from youtube_dl.compat import compat_urllib_request
 | 
					import subprocess
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from test.helper import (
 | 
				
			||||||
 | 
					    FakeYDL,
 | 
				
			||||||
 | 
					    get_params,
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					from youtube_dl.compat import (
 | 
				
			||||||
 | 
					    compat_str,
 | 
				
			||||||
 | 
					    compat_urllib_request,
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class TestSocks(unittest.TestCase):
 | 
					class TestMultipleSocks(unittest.TestCase):
 | 
				
			||||||
    @staticmethod
 | 
					    @staticmethod
 | 
				
			||||||
    def _check_params(attrs):
 | 
					    def _check_params(attrs):
 | 
				
			||||||
        params = get_params()
 | 
					        params = get_params()
 | 
				
			||||||
| 
						 | 
					@ -67,5 +76,32 @@ class TestSocks(unittest.TestCase):
 | 
				
			||||||
            params['secondary_server_ip'])
 | 
					            params['secondary_server_ip'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class TestSocks(unittest.TestCase):
 | 
				
			||||||
 | 
					    def setUp(self):
 | 
				
			||||||
 | 
					        self.port = random.randint(49152, 65535)
 | 
				
			||||||
 | 
					        self.server_process = subprocess.Popen([
 | 
				
			||||||
 | 
					            'srelay', '-f', '-i', '127.0.0.1:%d' % self.port],
 | 
				
			||||||
 | 
					            stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def tearDown(self):
 | 
				
			||||||
 | 
					        self.server_process.terminate()
 | 
				
			||||||
 | 
					        self.server_process.communicate()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def _get_ip(self, protocol):
 | 
				
			||||||
 | 
					        ydl = FakeYDL({
 | 
				
			||||||
 | 
					            'proxy': '%s://127.0.0.1:%d' % (protocol, self.port),
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					        return ydl.urlopen('http://yt-dl.org/ip').read().decode('utf-8')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_socks4(self):
 | 
				
			||||||
 | 
					        self.assertTrue(isinstance(self._get_ip('socks4'), compat_str))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_socks4a(self):
 | 
				
			||||||
 | 
					        self.assertTrue(isinstance(self._get_ip('socks4a'), compat_str))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_socks5(self):
 | 
				
			||||||
 | 
					        self.assertTrue(isinstance(self._get_ip('socks5'), compat_str))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if __name__ == '__main__':
 | 
					if __name__ == '__main__':
 | 
				
			||||||
    unittest.main()
 | 
					    unittest.main()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue