mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-03 23:17:07 -05:00 
			
		
		
		
	[test/test_socks] Test with local SOCKS servers
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -36,3 +36,4 @@ test/local_parameters.json
 | 
			
		||||
youtube-dl.zsh
 | 
			
		||||
.idea
 | 
			
		||||
.idea/*
 | 
			
		||||
tmp/
 | 
			
		||||
 
 | 
			
		||||
@@ -7,6 +7,9 @@ python:
 | 
			
		||||
  - "3.4"
 | 
			
		||||
  - "3.5"
 | 
			
		||||
sudo: false
 | 
			
		||||
install:
 | 
			
		||||
  - bash ./devscripts/install_srelay.sh
 | 
			
		||||
  - export PATH=$PATH:$(pwd)/tmp/srelay-0.4.8b6
 | 
			
		||||
script: nosetests test --verbose
 | 
			
		||||
notifications:
 | 
			
		||||
  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
 | 
			
		||||
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 | 
			
		||||
 | 
			
		||||
from test.helper import (FakeYDL, get_params)
 | 
			
		||||
from youtube_dl.compat import compat_urllib_request
 | 
			
		||||
import random
 | 
			
		||||
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
 | 
			
		||||
    def _check_params(attrs):
 | 
			
		||||
        params = get_params()
 | 
			
		||||
@@ -67,5 +76,32 @@ class TestSocks(unittest.TestCase):
 | 
			
		||||
            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__':
 | 
			
		||||
    unittest.main()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user