Add basic tests for get_file_by_url
authorAlexander Cecile <redacted>
Wed, 26 Aug 2020 00:40:30 +0000 (20:40 -0400)
committerAlexander Cecile <redacted>
Wed, 26 Aug 2020 00:40:30 +0000 (20:40 -0400)
testUpdateHostsFile.py

index 4cb70bc5731babb791dc24d3917b7abc2ef6cb93..3d80691f35e75dda0522e3c312033090e7909cd0 100644 (file)
@@ -17,6 +17,8 @@ import unittest
 import unittest.mock as mock
 from io import BytesIO, StringIO
 
+import requests
+
 import updateHostsFile
 from updateHostsFile import (
     Colors,
@@ -27,6 +29,7 @@ from updateHostsFile import (
     flush_dns_cache,
     gather_custom_exclusions,
     get_defaults,
+    get_file_by_url,
     is_valid_domain_format,
     matches_exclusions,
     move_hosts_file_into_place,
@@ -1614,6 +1617,32 @@ class DomainToIDNA(Base):
             self.assertEqual(actual, expected)
 
 
+class GetFileByUrl(BaseStdout):
+    def test_basic(self):
+        raw_resp_content = "hello, ".encode("ascii") + "world".encode("utf-8")
+        resp_obj = requests.Response()
+        resp_obj.__setstate__({"_content": raw_resp_content})
+
+        expected = "hello, world"
+
+        with mock.patch("requests.get", return_value=resp_obj):
+            actual = get_file_by_url("www.test-url.com")
+
+        self.assertEqual(expected, actual)
+
+    def test_with_idna(self):
+        raw_resp_content = b"www.huala\xc3\xb1e.cl"
+        resp_obj = requests.Response()
+        resp_obj.__setstate__({"_content": raw_resp_content})
+
+        expected = "www.xn--hualae-0wa.cl"
+
+        with mock.patch("requests.get", return_value=resp_obj):
+            actual = get_file_by_url("www.test-url.com")
+
+        self.assertEqual(expected, actual)
+
+
 class TestWriteData(Base):
     def test_write_basic(self):
         f = BytesIO()
git clone https://git.99rst.org/PROJECT