From 132b6e1098ca7ee13e355d02468e4c1cc68d93a9 Mon Sep 17 00:00:00 2001 From: Sam Kleiner Date: Mon, 29 Jul 2024 13:18:33 -0400 Subject: [PATCH 1/2] fix copy paste typo --- whoisit/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/whoisit/__init__.py b/whoisit/__init__.py index 0c11299..08bd5a8 100644 --- a/whoisit/__init__.py +++ b/whoisit/__init__.py @@ -80,9 +80,9 @@ def _domain(domain_name, raw=False, session=None, follow_related=True, async_cli relhref = link.get('href', '') if relhref: if is_async: - relq = QueryAsync(async_client, method, url) + relq = QueryAsync(async_client, method, relhref) else: - relq= Query(session, method, url) + relq= Query(session, method, relhref) yield relresponse = yield relq break From 2019e9ab7a0f874346654c6836f834fc04a2c5da Mon Sep 17 00:00:00 2001 From: Sam Kleiner Date: Mon, 29 Jul 2024 13:25:32 -0400 Subject: [PATCH 2/2] update tests with new calls --- tests/responses/domain-1.yaml | 367 ++++++++++++++++++--------------- tests/test_public_interface.py | 41 ++-- 2 files changed, 216 insertions(+), 192 deletions(-) diff --git a/tests/responses/domain-1.yaml b/tests/responses/domain-1.yaml index e8227a2..492d654 100644 --- a/tests/responses/domain-1.yaml +++ b/tests/responses/domain-1.yaml @@ -65,10 +65,10 @@ responses: headers: Accept-Ranges: bytes Access-Control-Allow-Origin: '*' - Age: '42164' + Age: '247' Cache-Control: max-age=86400 Etag: '"1057-615c37be90b59-gzip"' - Expires: Sat, 27 Jul 2024 14:57:32 GMT + Expires: Tue, 30 Jul 2024 17:24:10 GMT Last-Modified: Wed, 10 Apr 2024 20:00:01 GMT Referrer-Policy: origin-when-cross-origin Strict-Transport-Security: max-age=48211200; preload @@ -81,7 +81,7 @@ responses: - response: auto_calculate_content_length: false body: "{\n \"description\": \"RDAP bootstrap file for Domain Name System registrations\"\ - ,\n \"publication\": \"2024-07-25T00:00:01Z\",\n \"services\": [\n [\n\ + ,\n \"publication\": \"2024-07-25T22:00:01Z\",\n \"services\": [\n [\n\ \ [\n \"kg\"\n ],\n [\n \"http://rdap.cctld.kg/\"\ \n ]\n ],\n [\n [\n \"music\"\n ],\n [\n \ \ \"http://rdap.centralnic.com/music/\"\n ]\n ],\n [\n \ @@ -292,28 +292,28 @@ responses: \n ]\n ],\n [\n [\n \"ua\"\n ],\n [\n \ \ \"https://rdap.hostmaster.ua/\"\n ]\n ],\n [\n [\n \ \ \"int\"\n ],\n [\n \"https://rdap.iana.org/\"\n ]\n\ - \ ],\n [\n [\n \"abb\",\n \"abbott\",\n \"academy\"\ - ,\n \"accenture\",\n \"accountants\",\n \"actor\",\n \ - \ \"aeg\",\n \"aero\",\n \"agakhan\",\n \"agency\"\ - ,\n \"airforce\",\n \"akdn\",\n \"alibaba\",\n \"\ - alipay\",\n \"allstate\",\n \"aol\",\n \"apartments\",\n\ - \ \"apple\",\n \"archi\",\n \"army\",\n \"arte\"\ - ,\n \"asda\",\n \"asia\",\n \"associates\",\n \"\ - attorney\",\n \"auction\",\n \"audi\",\n \"band\",\n \ - \ \"barclaycard\",\n \"barclays\",\n \"barefoot\",\n \ - \ \"bargains\",\n \"bbt\",\n \"bcg\",\n \"beats\",\n\ - \ \"bestbuy\",\n \"bet\",\n \"bike\",\n \"bingo\"\ - ,\n \"bio\",\n \"black\",\n \"blockbuster\",\n \"\ - bloomberg\",\n \"blue\",\n \"bm\",\n \"bms\",\n \ - \ \"bnpparibas\",\n \"boehringer\",\n \"bofa\",\n \"bosch\"\ - ,\n \"boutique\",\n \"bradesco\",\n \"broker\",\n \ - \ \"builders\",\n \"business\",\n \"cab\",\n \"cafe\"\ - ,\n \"camera\",\n \"camp\",\n \"capital\",\n \"\ - cards\",\n \"care\",\n \"careers\",\n \"cash\",\n \ - \ \"casino\",\n \"catering\",\n \"center\",\n \"cern\"\ - ,\n \"cfa\",\n \"chanel\",\n \"chat\",\n \"cheap\"\ - ,\n \"church\",\n \"cipriani\",\n \"citadel\",\n \ - \ \"city\",\n \"claims\",\n \"cleaning\",\n \"clinic\"\ + \ ],\n [\n [\n \"abb\",\n \"abbott\",\n \"abc\"\ + ,\n \"academy\",\n \"accenture\",\n \"accountants\",\n\ + \ \"actor\",\n \"aeg\",\n \"aero\",\n \"agakhan\"\ + ,\n \"agency\",\n \"airforce\",\n \"akdn\",\n \"\ + alibaba\",\n \"alipay\",\n \"allstate\",\n \"aol\",\n \ + \ \"apartments\",\n \"apple\",\n \"archi\",\n \"\ + army\",\n \"arte\",\n \"asda\",\n \"asia\",\n \"\ + associates\",\n \"attorney\",\n \"auction\",\n \"audi\"\ + ,\n \"band\",\n \"barclaycard\",\n \"barclays\",\n \ + \ \"barefoot\",\n \"bargains\",\n \"bbt\",\n \"bcg\"\ + ,\n \"beats\",\n \"bestbuy\",\n \"bet\",\n \"bike\"\ + ,\n \"bingo\",\n \"bio\",\n \"black\",\n \"blockbuster\"\ + ,\n \"bloomberg\",\n \"blue\",\n \"bm\",\n \"bms\"\ + ,\n \"bnpparibas\",\n \"boehringer\",\n \"bofa\",\n \ + \ \"bosch\",\n \"boutique\",\n \"bradesco\",\n \"broker\"\ + ,\n \"builders\",\n \"business\",\n \"cab\",\n \"\ + cafe\",\n \"camera\",\n \"camp\",\n \"capital\",\n \ + \ \"cards\",\n \"care\",\n \"careers\",\n \"cash\",\n\ + \ \"casino\",\n \"catering\",\n \"center\",\n \"\ + cern\",\n \"cfa\",\n \"chanel\",\n \"chat\",\n \"\ + cheap\",\n \"church\",\n \"cipriani\",\n \"citadel\",\n\ + \ \"city\",\n \"claims\",\n \"cleaning\",\n \"clinic\"\ ,\n \"clinique\",\n \"clothing\",\n \"clubmed\",\n \ \ \"coach\",\n \"codes\",\n \"coffee\",\n \"community\"\ ,\n \"company\",\n \"computer\",\n \"condos\",\n \ @@ -359,64 +359,65 @@ responses: ,\n \"kuokgroup\",\n \"lamborghini\",\n \"lamer\",\n \ \ \"land\",\n \"landrover\",\n \"lasalle\",\n \"latino\"\ ,\n \"lawyer\",\n \"lds\",\n \"lease\",\n \"lefrak\"\ - ,\n \"legal\",\n \"lgbt\",\n \"life\",\n \"lighting\"\ - ,\n \"limited\",\n \"limo\",\n \"lipsy\",\n \"live\"\ - ,\n \"llc\",\n \"loans\",\n \"locker\",\n \"lotto\"\ - ,\n \"ltd\",\n \"ltda\",\n \"lundbeck\",\n \"maif\"\ - ,\n \"maison\",\n \"management\",\n \"market\",\n \ - \ \"marketing\",\n \"markets\",\n \"marriott\",\n \"\ - mba\",\n \"mckinsey\",\n \"media\",\n \"memorial\",\n \ - \ \"mit\",\n \"mobi\",\n \"mobile\",\n \"moda\",\n\ - \ \"money\",\n \"mormon\",\n \"mortgage\",\n \"\ - movie\",\n \"nab\",\n \"navy\",\n \"network\",\n \ - \ \"news\",\n \"next\",\n \"nextdirect\",\n \"nikon\"\ - ,\n \"ninja\",\n \"nowtv\",\n \"nra\",\n \"obi\"\ - ,\n \"ollo\",\n \"onl\",\n \"oracle\",\n \"orange\"\ - ,\n \"organic\",\n \"origins\",\n \"ott\",\n \"\ - partners\",\n \"parts\",\n \"pccw\",\n \"pet\",\n \ - \ \"phone\",\n \"photography\",\n \"photos\",\n \"pictet\"\ - ,\n \"pictures\",\n \"pink\",\n \"pizza\",\n \"\ - place\",\n \"plumbing\",\n \"plus\",\n \"pnc\",\n \ - \ \"poker\",\n \"post\",\n \"pro\",\n \"productions\"\ - ,\n \"progressive\",\n \"promo\",\n \"properties\",\n \ - \ \"pub\",\n \"pwc\",\n \"recipes\",\n \"red\",\n\ - \ \"redumbrella\",\n \"rehab\",\n \"reise\",\n \"\ - reisen\",\n \"reliance\",\n \"rentals\",\n \"repair\",\n\ - \ \"report\",\n \"republican\",\n \"restaurant\",\n \ - \ \"reviews\",\n \"rexroth\",\n \"rich\",\n \"richardli\"\ + ,\n \"legal\",\n \"lego\",\n \"lgbt\",\n \"life\"\ + ,\n \"lighting\",\n \"limited\",\n \"limo\",\n \"\ + lipsy\",\n \"live\",\n \"llc\",\n \"loans\",\n \"\ + locker\",\n \"lotto\",\n \"ltd\",\n \"ltda\",\n \ + \ \"lundbeck\",\n \"maif\",\n \"maison\",\n \"management\"\ + ,\n \"market\",\n \"marketing\",\n \"markets\",\n \ + \ \"marriott\",\n \"mba\",\n \"mckinsey\",\n \"media\"\ + ,\n \"memorial\",\n \"mit\",\n \"mobi\",\n \"mobile\"\ + ,\n \"moda\",\n \"money\",\n \"mormon\",\n \"mortgage\"\ + ,\n \"movie\",\n \"nab\",\n \"navy\",\n \"network\"\ + ,\n \"news\",\n \"next\",\n \"nextdirect\",\n \"\ + nikon\",\n \"ninja\",\n \"nowtv\",\n \"nra\",\n \ + \ \"obi\",\n \"ollo\",\n \"onl\",\n \"oracle\",\n \ + \ \"orange\",\n \"organic\",\n \"origins\",\n \"ott\"\ + ,\n \"partners\",\n \"parts\",\n \"pccw\",\n \"\ + pet\",\n \"phone\",\n \"photography\",\n \"photos\",\n\ + \ \"pictet\",\n \"pictures\",\n \"pink\",\n \"pizza\"\ + ,\n \"place\",\n \"plumbing\",\n \"plus\",\n \"\ + pnc\",\n \"poker\",\n \"post\",\n \"pro\",\n \"\ + productions\",\n \"progressive\",\n \"promo\",\n \"properties\"\ + ,\n \"pub\",\n \"pwc\",\n \"recipes\",\n \"red\"\ + ,\n \"redumbrella\",\n \"rehab\",\n \"reise\",\n \ + \ \"reisen\",\n \"reliance\",\n \"rentals\",\n \"repair\"\ + ,\n \"report\",\n \"republican\",\n \"restaurant\",\n \ + \ \"reviews\",\n \"rexroth\",\n \"rich\",\n \"richardli\"\ ,\n \"ril\",\n \"rip\",\n \"rocks\",\n \"rogers\"\ - ,\n \"run\",\n \"sale\",\n \"salon\",\n \"samsclub\"\ - ,\n \"sanofi\",\n \"sarl\",\n \"saxo\",\n \"sbi\"\ - ,\n \"scholarships\",\n \"school\",\n \"schule\",\n \ - \ \"services\",\n \"sew\",\n \"shangrila\",\n \"shiksha\"\ - ,\n \"shoes\",\n \"shopping\",\n \"show\",\n \"\ - sina\",\n \"singles\",\n \"ski\",\n \"sling\",\n \ - \ \"soccer\",\n \"social\",\n \"software\",\n \"solar\"\ - ,\n \"solutions\",\n \"spa\",\n \"srl\",\n \"stada\"\ - ,\n \"star\",\n \"statebank\",\n \"stockholm\",\n \ - \ \"studio\",\n \"style\",\n \"supplies\",\n \"supply\"\ - ,\n \"support\",\n \"surgery\",\n \"systems\",\n \ - \ \"taobao\",\n \"tatamotors\",\n \"tax\",\n \"taxi\"\ - ,\n \"team\",\n \"technology\",\n \"temasek\",\n \ - \ \"tennis\",\n \"thd\",\n \"theater\",\n \"tiaa\",\n\ - \ \"tienda\",\n \"tips\",\n \"tires\",\n \"tmall\"\ - ,\n \"today\",\n \"tools\",\n \"tours\",\n \"town\"\ - ,\n \"toys\",\n \"trading\",\n \"training\",\n \"\ - travel\",\n \"travelers\",\n \"travelersinsurance\",\n \ - \ \"trv\",\n \"ubank\",\n \"ubs\",\n \"university\",\n\ - \ \"ups\",\n \"vacations\",\n \"vanguard\",\n \"\ - vegas\",\n \"ventures\",\n \"vet\",\n \"viajes\",\n \ - \ \"video\",\n \"vig\",\n \"viking\",\n \"villas\"\ - ,\n \"vin\",\n \"vision\",\n \"volvo\",\n \"vote\"\ - ,\n \"voto\",\n \"voyage\",\n \"walmart\",\n \"\ - watch\",\n \"watches\",\n \"weibo\",\n \"weir\",\n \ - \ \"wine\",\n \"wolterskluwer\",\n \"works\",\n \"world\"\ - ,\n \"wtf\",\n \"xin\",\n \"xn--6frz82g\",\n \"\ - xn--9krt00a\",\n \"xn--b4w605ferd\",\n \"xn--czrs0t\",\n \ - \ \"xn--fjq720a\",\n \"xn--fzys8d69uvgm\",\n \"xn--unup4y\"\ - ,\n \"xn--vhquv\",\n \"zara\",\n \"zone\"\n ],\n \ - \ [\n \"https://rdap.identitydigital.services/rdap/\"\n ]\n\ - \ ],\n [\n [\n \"is\"\n ],\n [\n \"https://rdap.isnic.is/rdap/\"\ + ,\n \"run\",\n \"rwe\",\n \"sale\",\n \"salon\"\ + ,\n \"samsclub\",\n \"sanofi\",\n \"sarl\",\n \"\ + saxo\",\n \"sbi\",\n \"scholarships\",\n \"school\",\n\ + \ \"schule\",\n \"sener\",\n \"services\",\n \"\ + sew\",\n \"shangrila\",\n \"shiksha\",\n \"shoes\",\n \ + \ \"shopping\",\n \"show\",\n \"sina\",\n \"singles\"\ + ,\n \"ski\",\n \"sling\",\n \"soccer\",\n \"social\"\ + ,\n \"software\",\n \"solar\",\n \"solutions\",\n \ + \ \"spa\",\n \"srl\",\n \"stada\",\n \"star\",\n \ + \ \"statebank\",\n \"stockholm\",\n \"studio\",\n \"\ + style\",\n \"supplies\",\n \"supply\",\n \"support\",\n\ + \ \"surgery\",\n \"systems\",\n \"taobao\",\n \"\ + tatamotors\",\n \"tax\",\n \"taxi\",\n \"team\",\n \ + \ \"technology\",\n \"temasek\",\n \"tennis\",\n \"\ + thd\",\n \"theater\",\n \"tiaa\",\n \"tienda\",\n \ + \ \"tips\",\n \"tires\",\n \"tmall\",\n \"today\",\n\ + \ \"tools\",\n \"tours\",\n \"town\",\n \"toys\"\ + ,\n \"trading\",\n \"training\",\n \"travel\",\n \ + \ \"travelers\",\n \"travelersinsurance\",\n \"trv\",\n \ + \ \"ubank\",\n \"ubs\",\n \"university\",\n \"ups\",\n\ + \ \"vacations\",\n \"vanguard\",\n \"vegas\",\n \ + \ \"ventures\",\n \"vet\",\n \"viajes\",\n \"video\",\n\ + \ \"vig\",\n \"viking\",\n \"villas\",\n \"vin\"\ + ,\n \"vision\",\n \"volvo\",\n \"vote\",\n \"voto\"\ + ,\n \"voyage\",\n \"walmart\",\n \"watch\",\n \"\ + watches\",\n \"weibo\",\n \"weir\",\n \"wine\",\n \ + \ \"wolterskluwer\",\n \"works\",\n \"world\",\n \"wtf\"\ + ,\n \"xin\",\n \"xn--6frz82g\",\n \"xn--9krt00a\",\n \ + \ \"xn--b4w605ferd\",\n \"xn--czrs0t\",\n \"xn--fjq720a\"\ + ,\n \"xn--fzys8d69uvgm\",\n \"xn--unup4y\",\n \"xn--vhquv\"\ + ,\n \"yahoo\",\n \"zara\",\n \"zone\"\n ],\n \ + \ [\n \"https://rdap.identitydigital.services/rdap/\"\n ]\n ],\n\ + \ [\n [\n \"is\"\n ],\n [\n \"https://rdap.isnic.is/rdap/\"\ \n ]\n ],\n [\n [\n \"kiwi\"\n ],\n [\n \ \ \"https://rdap.kiwi.fury.ca/rdap/\"\n ]\n ],\n [\n [\n\ \ \"lb\"\n ],\n [\n \"https://rdap.lbdr.org.lb/\"\n\ @@ -1039,15 +1040,13 @@ responses: xn--io0a7i\",\n \"xn--xhq521b\"\n ],\n [\n \"https://restwhois.ngtld.cn/\"\ \n ]\n ],\n [\n [\n \"aarp\"\n ],\n [\n \ \ \"https://tld-rdap.verisign.com/aarp/v1/\"\n ]\n ],\n [\n \ - \ [\n \"abc\"\n ],\n [\n \"https://tld-rdap.verisign.com/abc/v1/\"\ - \n ]\n ],\n [\n [\n \"airbus\"\n ],\n [\n \ - \ \"https://tld-rdap.verisign.com/airbus/v1/\"\n ]\n ],\n [\n\ - \ [\n \"airtel\"\n ],\n [\n \"https://tld-rdap.verisign.com/airtel/v1/\"\ - \n ]\n ],\n [\n [\n \"americanfamily\"\n ],\n \ - \ [\n \"https://tld-rdap.verisign.com/americanfamily/v1/\"\n \ - \ ]\n ],\n [\n [\n \"amfam\"\n ],\n [\n \"\ - https://tld-rdap.verisign.com/amfam/v1/\"\n ]\n ],\n [\n [\n\ - \ \"bharti\"\n ],\n [\n \"https://tld-rdap.verisign.com/bharti/v1/\"\ + \ [\n \"airbus\"\n ],\n [\n \"https://tld-rdap.verisign.com/airbus/v1/\"\ + \n ]\n ],\n [\n [\n \"airtel\"\n ],\n [\n \ + \ \"https://tld-rdap.verisign.com/airtel/v1/\"\n ]\n ],\n [\n\ + \ [\n \"americanfamily\"\n ],\n [\n \"https://tld-rdap.verisign.com/americanfamily/v1/\"\ + \n ]\n ],\n [\n [\n \"amfam\"\n ],\n [\n \ + \ \"https://tld-rdap.verisign.com/amfam/v1/\"\n ]\n ],\n [\n\ + \ [\n \"bharti\"\n ],\n [\n \"https://tld-rdap.verisign.com/bharti/v1/\"\ \n ]\n ],\n [\n [\n \"capitalone\"\n ],\n [\n\ \ \"https://tld-rdap.verisign.com/capitalone/v1/\"\n ]\n ],\n\ \ [\n [\n \"cc\"\n ],\n [\n \"https://tld-rdap.verisign.com/cc/v1/\"\ @@ -1056,33 +1055,28 @@ responses: \ [\n \"diy\"\n ],\n [\n \"https://tld-rdap.verisign.com/diy/v1/\"\ \n ]\n ],\n [\n [\n \"food\"\n ],\n [\n \ \ \"https://tld-rdap.verisign.com/food/v1/\"\n ]\n ],\n [\n \ - \ [\n \"lego\"\n ],\n [\n \"https://tld-rdap.verisign.com/lego/v1/\"\ - \n ]\n ],\n [\n [\n \"lifestyle\"\n ],\n [\n\ - \ \"https://tld-rdap.verisign.com/lifestyle/v1/\"\n ]\n ],\n\ - \ [\n [\n \"living\"\n ],\n [\n \"https://tld-rdap.verisign.com/living/v1/\"\ - \n ]\n ],\n [\n [\n \"name\"\n ],\n [\n \ - \ \"https://tld-rdap.verisign.com/name/v1/\"\n ]\n ],\n [\n \ - \ [\n \"nissay\"\n ],\n [\n \"https://tld-rdap.verisign.com/nissay/v1/\"\ - \n ]\n ],\n [\n [\n \"norton\"\n ],\n [\n \ - \ \"https://tld-rdap.verisign.com/norton/v1/\"\n ]\n ],\n [\n\ - \ [\n \"omega\"\n ],\n [\n \"https://tld-rdap.verisign.com/omega/v1/\"\ - \n ]\n ],\n [\n [\n \"rwe\"\n ],\n [\n \ - \ \"https://tld-rdap.verisign.com/rwe/v1/\"\n ]\n ],\n [\n \ - \ [\n \"sener\"\n ],\n [\n \"https://tld-rdap.verisign.com/sener/v1/\"\ - \n ]\n ],\n [\n [\n \"shell\"\n ],\n [\n \ - \ \"https://tld-rdap.verisign.com/shell/v1/\"\n ]\n ],\n [\n\ - \ [\n \"swatch\"\n ],\n [\n \"https://tld-rdap.verisign.com/swatch/v1/\"\ - \n ]\n ],\n [\n [\n \"vana\"\n ],\n [\n \ - \ \"https://tld-rdap.verisign.com/vana/v1/\"\n ]\n ],\n [\n \ - \ [\n \"verisign\"\n ],\n [\n \"https://tld-rdap.verisign.com/verisign/v1/\"\ - \n ]\n ],\n [\n [\n \"visa\"\n ],\n [\n \ - \ \"https://tld-rdap.verisign.com/visa/v1/\"\n ]\n ],\n [\n \ - \ [\n \"weber\"\n ],\n [\n \"https://tld-rdap.verisign.com/weber/v1/\"\ - \n ]\n ],\n [\n [\n \"xn--11b4c3d\"\n ],\n \ - \ [\n \"https://tld-rdap.verisign.com/xn--11b4c3d/v1/\"\n ]\n \ - \ ],\n [\n [\n \"xn--3pxu8k\"\n ],\n [\n \"\ - https://tld-rdap.verisign.com/xn--3pxu8k/v1/\"\n ]\n ],\n [\n \ - \ [\n \"xn--42c2d9a\"\n ],\n [\n \"https://tld-rdap.verisign.com/xn--42c2d9a/v1/\"\ + \ [\n \"lifestyle\"\n ],\n [\n \"https://tld-rdap.verisign.com/lifestyle/v1/\"\ + \n ]\n ],\n [\n [\n \"living\"\n ],\n [\n \ + \ \"https://tld-rdap.verisign.com/living/v1/\"\n ]\n ],\n [\n\ + \ [\n \"name\"\n ],\n [\n \"https://tld-rdap.verisign.com/name/v1/\"\ + \n ]\n ],\n [\n [\n \"nissay\"\n ],\n [\n \ + \ \"https://tld-rdap.verisign.com/nissay/v1/\"\n ]\n ],\n [\n\ + \ [\n \"norton\"\n ],\n [\n \"https://tld-rdap.verisign.com/norton/v1/\"\ + \n ]\n ],\n [\n [\n \"omega\"\n ],\n [\n \ + \ \"https://tld-rdap.verisign.com/omega/v1/\"\n ]\n ],\n [\n\ + \ [\n \"shell\"\n ],\n [\n \"https://tld-rdap.verisign.com/shell/v1/\"\ + \n ]\n ],\n [\n [\n \"swatch\"\n ],\n [\n \ + \ \"https://tld-rdap.verisign.com/swatch/v1/\"\n ]\n ],\n [\n\ + \ [\n \"vana\"\n ],\n [\n \"https://tld-rdap.verisign.com/vana/v1/\"\ + \n ]\n ],\n [\n [\n \"verisign\"\n ],\n [\n\ + \ \"https://tld-rdap.verisign.com/verisign/v1/\"\n ]\n ],\n \ + \ [\n [\n \"visa\"\n ],\n [\n \"https://tld-rdap.verisign.com/visa/v1/\"\ + \n ]\n ],\n [\n [\n \"weber\"\n ],\n [\n \ + \ \"https://tld-rdap.verisign.com/weber/v1/\"\n ]\n ],\n [\n\ + \ [\n \"xn--11b4c3d\"\n ],\n [\n \"https://tld-rdap.verisign.com/xn--11b4c3d/v1/\"\ + \n ]\n ],\n [\n [\n \"xn--3pxu8k\"\n ],\n [\n\ + \ \"https://tld-rdap.verisign.com/xn--3pxu8k/v1/\"\n ]\n ],\n\ + \ [\n [\n \"xn--42c2d9a\"\n ],\n [\n \"https://tld-rdap.verisign.com/xn--42c2d9a/v1/\"\ \n ]\n ],\n [\n [\n \"xn--5su34j936bgsg\"\n ],\n\ \ [\n \"https://tld-rdap.verisign.com/xn--5su34j936bgsg/v1/\"\n\ \ ]\n ],\n [\n [\n \"xn--9dbq2a\"\n ],\n [\n\ @@ -1102,40 +1096,40 @@ responses: \ \"https://tld-rdap.verisign.com/xn--w4r85el8fhu5dnra/v1/\"\n ]\n \ \ ],\n [\n [\n \"xn--w4rs40l\"\n ],\n [\n \"\ https://tld-rdap.verisign.com/xn--w4rs40l/v1/\"\n ]\n ],\n [\n \ - \ [\n \"yahoo\"\n ],\n [\n \"https://tld-rdap.verisign.com/yahoo/v1/\"\ - \n ]\n ],\n [\n [\n \"ky\"\n ],\n [\n \ - \ \"https://whois.kyregistry.ky/rdap/\"\n ]\n ],\n [\n [\n\ - \ \"mtr\"\n ],\n [\n \"https://whois.nic.mtr/rdap/\"\ - \n ]\n ],\n [\n [\n \"tatar\"\n ],\n [\n \ - \ \"https://whois.nic.tatar/rdap/\"\n ]\n ],\n [\n [\n\ - \ \"xn--d1acj3b\"\n ],\n [\n \"https://whois.nic.xn--d1acj3b/rdap/\"\ - \n ]\n ],\n [\n [\n \"tz\"\n ],\n [\n \ - \ \"https://whois.tznic.or.tz/rdap/\"\n ]\n ],\n [\n [\n \ - \ \"click\",\n \"country\",\n \"gift\",\n \"hiv\"\ - ,\n \"juegos\",\n \"link\",\n \"property\",\n \"\ - sexy\",\n \"trust\"\n ],\n [\n \"https://whois.uniregistry.net/rdap/\"\ - \n ]\n ],\n [\n [\n \"ads\",\n \"android\",\n\ - \ \"app\",\n \"boo\",\n \"cal\",\n \"channel\",\n\ - \ \"chrome\",\n \"dad\",\n \"day\",\n \"dclk\",\n\ - \ \"dev\",\n \"docs\",\n \"drive\",\n \"eat\",\n\ - \ \"esq\",\n \"fly\",\n \"foo\",\n \"gbiz\",\n \ - \ \"gle\",\n \"gmail\",\n \"goog\",\n \"google\"\ - ,\n \"guge\",\n \"hangout\",\n \"here\",\n \"how\"\ - ,\n \"ing\",\n \"map\",\n \"meet\",\n \"meme\",\n\ - \ \"mov\",\n \"new\",\n \"nexus\",\n \"page\",\n\ - \ \"phd\",\n \"play\",\n \"prod\",\n \"prof\",\n\ - \ \"rsvp\",\n \"search\",\n \"soy\",\n \"xn--flw351e\"\ - ,\n \"xn--q9jyb4c\",\n \"xn--qcka1pmc\",\n \"youtube\"\ - ,\n \"zip\"\n ],\n [\n \"https://www.registry.google/rdap/\"\ - \n ]\n ]\n ],\n \"version\": \"1.0\"\n}" + \ [\n \"ky\"\n ],\n [\n \"https://whois.kyregistry.ky/rdap/\"\ + \n ]\n ],\n [\n [\n \"mtr\"\n ],\n [\n \ + \ \"https://whois.nic.mtr/rdap/\"\n ]\n ],\n [\n [\n \ + \ \"tatar\"\n ],\n [\n \"https://whois.nic.tatar/rdap/\"\ + \n ]\n ],\n [\n [\n \"xn--d1acj3b\"\n ],\n \ + \ [\n \"https://whois.nic.xn--d1acj3b/rdap/\"\n ]\n ],\n [\n\ + \ [\n \"tz\"\n ],\n [\n \"https://whois.tznic.or.tz/rdap/\"\ + \n ]\n ],\n [\n [\n \"click\",\n \"country\",\n\ + \ \"gift\",\n \"hiv\",\n \"juegos\",\n \"link\"\ + ,\n \"property\",\n \"sexy\",\n \"trust\"\n ],\n \ + \ [\n \"https://whois.uniregistry.net/rdap/\"\n ]\n ],\n\ + \ [\n [\n \"ads\",\n \"android\",\n \"app\",\n\ + \ \"boo\",\n \"cal\",\n \"channel\",\n \"chrome\"\ + ,\n \"dad\",\n \"day\",\n \"dclk\",\n \"dev\",\n\ + \ \"docs\",\n \"drive\",\n \"eat\",\n \"esq\",\n\ + \ \"fly\",\n \"foo\",\n \"gbiz\",\n \"gle\",\n \ + \ \"gmail\",\n \"goog\",\n \"google\",\n \"guge\"\ + ,\n \"hangout\",\n \"here\",\n \"how\",\n \"ing\"\ + ,\n \"map\",\n \"meet\",\n \"meme\",\n \"mov\",\n\ + \ \"new\",\n \"nexus\",\n \"page\",\n \"phd\",\n\ + \ \"play\",\n \"prod\",\n \"prof\",\n \"rsvp\",\n\ + \ \"search\",\n \"soy\",\n \"xn--flw351e\",\n \"\ + xn--q9jyb4c\",\n \"xn--qcka1pmc\",\n \"youtube\",\n \"\ + zip\"\n ],\n [\n \"https://www.registry.google/rdap/\"\n \ + \ ]\n ]\n ],\n \"version\": \"1.0\"\n}" content_type: text/plain headers: + Accept-Ranges: bytes Access-Control-Allow-Origin: '*' - Age: '63089' + Age: '248' Cache-Control: max-age=86400 - Etag: '"11c90-61e07138eeaff-br+gzip"' - Expires: Sat, 27 Jul 2024 14:57:32 GMT - Last-Modified: Thu, 25 Jul 2024 00:00:02 GMT + Etag: '"11aba-61e19843b143d-gzip"' + Expires: Tue, 30 Jul 2024 17:24:11 GMT + Last-Modified: Thu, 25 Jul 2024 22:00:01 GMT Referrer-Policy: origin-when-cross-origin Strict-Transport-Security: max-age=48211200; preload Vary: Accept-Encoding @@ -1231,12 +1225,11 @@ responses: \n ]\n ]\n ],\n \"version\": \"1.0\"\n}" content_type: text/plain headers: - Accept-Ranges: bytes Access-Control-Allow-Origin: '*' - Age: '41970' + Age: '79776' Cache-Control: max-age=86400 - Etag: '"15fd-58ac070130427-gzip"' - Expires: Sat, 27 Jul 2024 14:57:33 GMT + Etag: '"15fd-58ac070130427-br+gzip"' + Expires: Tue, 30 Jul 2024 17:24:11 GMT Last-Modified: Fri, 07 Jun 2019 19:00:02 GMT Referrer-Policy: origin-when-cross-origin Strict-Transport-Security: max-age=48211200; preload @@ -1271,12 +1264,11 @@ responses: \ \"version\": \"1.0\"\n}" content_type: text/plain headers: - Accept-Ranges: bytes Access-Control-Allow-Origin: '*' - Age: '41960' + Age: '79776' Cache-Control: max-age=86400 - Etag: '"5af-596b22819f571-gzip"' - Expires: Sat, 27 Jul 2024 14:57:33 GMT + Etag: '"5af-596b22819f571-br+gzip"' + Expires: Tue, 30 Jul 2024 17:24:11 GMT Last-Modified: Wed, 06 Nov 2019 19:00:04 GMT Referrer-Policy: origin-when-cross-origin Strict-Transport-Security: max-age=48211200; preload @@ -1308,10 +1300,10 @@ responses: headers: Accept-Ranges: bytes Access-Control-Allow-Origin: '*' - Age: '5827' + Age: '246' Cache-Control: max-age=86400 Etag: '"427-5ffc485811434-gzip"' - Expires: Sat, 27 Jul 2024 14:57:33 GMT + Expires: Tue, 30 Jul 2024 17:24:11 GMT Last-Modified: Wed, 05 Jul 2023 22:00:02 GMT Referrer-Policy: origin-when-cross-origin Strict-Transport-Security: max-age=48211200; preload @@ -1329,7 +1321,7 @@ responses: Registrar ID","identifier":"292"}],"vcardArray":["vcard",[["version",{},"text","4.0"],["fn",{},"text","MarkMonitor Inc."]]],"entities":[{"objectClassName":"entity","roles":["abuse"],"vcardArray":["vcard",[["version",{},"text","4.0"],["fn",{},"text",""],["tel",{"type":"voice"},"uri","tel:+1.2086851750"],["email",{},"text","abusecomplaints@markmonitor.com"]]]}]}],"events":[{"eventAction":"registration","eventDate":"1997-09-15T04:00:00Z"},{"eventAction":"expiration","eventDate":"2028-09-14T04:00:00Z"},{"eventAction":"last changed","eventDate":"2019-09-09T15:39:04Z"},{"eventAction":"last update of - RDAP database","eventDate":"2024-07-26T14:57:20Z"}],"secureDNS":{"delegationSigned":false},"nameservers":[{"objectClassName":"nameserver","ldhName":"NS1.GOOGLE.COM"},{"objectClassName":"nameserver","ldhName":"NS2.GOOGLE.COM"},{"objectClassName":"nameserver","ldhName":"NS3.GOOGLE.COM"},{"objectClassName":"nameserver","ldhName":"NS4.GOOGLE.COM"}],"rdapConformance":["rdap_level_0","icann_rdap_technical_implementation_guide_0","icann_rdap_response_profile_0"],"notices":[{"title":"Terms + RDAP database","eventDate":"2024-07-29T17:23:53Z"}],"secureDNS":{"delegationSigned":false},"nameservers":[{"objectClassName":"nameserver","ldhName":"NS1.GOOGLE.COM"},{"objectClassName":"nameserver","ldhName":"NS2.GOOGLE.COM"},{"objectClassName":"nameserver","ldhName":"NS3.GOOGLE.COM"},{"objectClassName":"nameserver","ldhName":"NS4.GOOGLE.COM"}],"rdapConformance":["rdap_level_0","icann_rdap_technical_implementation_guide_0","icann_rdap_response_profile_0"],"notices":[{"title":"Terms of Use","description":["Service subject to Terms of Use."],"links":[{"href":"https:\/\/www.verisign.com\/domain-names\/registration-data-access-protocol\/terms-service\/index.xhtml","type":"text\/html"}]},{"title":"Status Codes","description":["For more information on domain status codes, please visit https:\/\/icann.org\/epp"],"links":[{"href":"https:\/\/icann.org\/epp","type":"text\/html"}]},{"title":"RDDS @@ -1344,22 +1336,55 @@ responses: url: https://rdap.verisign.com/com/v1/domain/google.com - response: auto_calculate_content_length: false - body: '{"objectClassName":"domain","handle":"2138514_DOMAIN_COM-VRSN","ldhName":"GOOGLE.COM","links":[{"value":"https:\/\/rdap.verisign.com\/com\/v1\/domain\/GOOGLE.COM","rel":"self","href":"https:\/\/rdap.verisign.com\/com\/v1\/domain\/GOOGLE.COM","type":"application\/rdap+json"},{"value":"https:\/\/rdap.markmonitor.com\/rdap\/domain\/GOOGLE.COM","rel":"related","href":"https:\/\/rdap.markmonitor.com\/rdap\/domain\/GOOGLE.COM","type":"application\/rdap+json"}],"status":["client - delete prohibited","client transfer prohibited","client update prohibited","server - delete prohibited","server transfer prohibited","server update prohibited"],"entities":[{"objectClassName":"entity","handle":"292","roles":["registrar"],"publicIds":[{"type":"IANA - Registrar ID","identifier":"292"}],"vcardArray":["vcard",[["version",{},"text","4.0"],["fn",{},"text","MarkMonitor - Inc."]]],"entities":[{"objectClassName":"entity","roles":["abuse"],"vcardArray":["vcard",[["version",{},"text","4.0"],["fn",{},"text",""],["tel",{"type":"voice"},"uri","tel:+1.2086851750"],["email",{},"text","abusecomplaints@markmonitor.com"]]]}]}],"events":[{"eventAction":"registration","eventDate":"1997-09-15T04:00:00Z"},{"eventAction":"expiration","eventDate":"2028-09-14T04:00:00Z"},{"eventAction":"last - changed","eventDate":"2019-09-09T15:39:04Z"},{"eventAction":"last update of - RDAP database","eventDate":"2024-07-26T14:57:20Z"}],"secureDNS":{"delegationSigned":false},"nameservers":[{"objectClassName":"nameserver","ldhName":"NS1.GOOGLE.COM"},{"objectClassName":"nameserver","ldhName":"NS2.GOOGLE.COM"},{"objectClassName":"nameserver","ldhName":"NS3.GOOGLE.COM"},{"objectClassName":"nameserver","ldhName":"NS4.GOOGLE.COM"}],"rdapConformance":["rdap_level_0","icann_rdap_technical_implementation_guide_0","icann_rdap_response_profile_0"],"notices":[{"title":"Terms - of Use","description":["Service subject to Terms of Use."],"links":[{"href":"https:\/\/www.verisign.com\/domain-names\/registration-data-access-protocol\/terms-service\/index.xhtml","type":"text\/html"}]},{"title":"Status + body: '{"ldhName":"google.com","objectClassName":"domain","handle":"2138514_DOMAIN_COM-VRSN","events":[{"eventAction":"expiration","eventDate":"2028-09-13T07:00:00.000+0000"},{"eventAction":"registration","eventDate":"1997-09-15T07:00:00.000+0000"},{"eventAction":"last + update","eventDate":"2019-09-09T15:39:04.000+0000"},{"eventAction":"last update + of RDAP database","eventDate":"2024-07-29T17:23:48.000+0000"}],"status":["client + update prohibited","client transfer prohibited","client delete prohibited","server + update prohibited","server transfer prohibited","server delete prohibited"],"nameservers":[{"objectClassName":"nameserver","ldhName":"ns1.google.com","status":["active"],"events":[{"eventAction":"last + changed","eventDate":"2008-06-08T04:46:18.000+0000"}]},{"objectClassName":"nameserver","ldhName":"ns2.google.com","status":["active"],"events":[{"eventAction":"last + changed","eventDate":"2008-06-08T04:46:18.000+0000"}]},{"objectClassName":"nameserver","ldhName":"ns3.google.com","status":["active"],"events":[{"eventAction":"last + changed","eventDate":"2008-06-08T04:46:18.000+0000"}]},{"objectClassName":"nameserver","ldhName":"ns4.google.com","status":["active"],"events":[{"eventAction":"last + changed","eventDate":"2008-06-08T04:46:19.000+0000"}]}],"secureDNS":{"delegationSigned":false},"entities":[{"objectClassName":"entity","events":[{"eventAction":"last + update","eventDate":"2017-12-11T15:40:13.000+0000"}],"roles":["administrative"],"remarks":[{"title":"REDACTED + FOR PRIVACY","type":"Object truncated due to authorization","description":["Some + of the data in this object has been removed."]}],"vcardArray":["vcard",[["version",{},"text","4.0"],["adr",{},"text",["","","","","CA","","US"]]]],"contact_URI":"https://domains.markmonitor.com/whois/"},{"objectClassName":"entity","events":[{"eventAction":"last + update","eventDate":"2017-12-11T15:40:13.000+0000"}],"roles":["registrant"],"remarks":[{"title":"REDACTED + FOR PRIVACY","type":"Object truncated due to authorization","description":["Some + of the data in this object has been removed."]}],"vcardArray":["vcard",[["version",{},"text","4.0"],["org",{"type":"work"},"text","Google + LLC"],["adr",{},"text",["","","","","CA","","US"]]]],"contact_URI":"https://domains.markmonitor.com/whois/"},{"objectClassName":"entity","events":[{"eventAction":"last + update","eventDate":"2017-12-11T15:40:13.000+0000"}],"roles":["technical"],"remarks":[{"title":"REDACTED + FOR PRIVACY","type":"Object truncated due to authorization","description":["Some + of the data in this object has been removed."]}],"vcardArray":["vcard",[["version",{},"text","4.0"],["adr",{},"text",["","","","","CA","","US"]]]],"contact_URI":"https://domains.markmonitor.com/whois/"},{"objectClassName":"entity","handle":"292","events":[{"eventAction":"registrar + expiration","eventDate":"2020-09-14T04:00:00.000+0000"}],"roles":["registrar"],"entities":[{"objectClassName":"entity","vcardArray":["vcard",[["version",{},"text","4.0"],["email",{"type":"work"},"text","abusecomplaints@markmonitor.com"],["tel",{"type":"voice"},"text","+1.2086851750"]]],"roles":["abuse"]}],"publicIds":[{"type":"IANA + Registrar ID","identifier":"292"}],"vcardArray":["vcard",[["version",{},"text","4.0"],["org",{"type":"work"},"text","MarkMonitor + Inc."],["adr",{},"text",["","","3540 E Longwing Ln","Meridian","ID","83646","US"]]]]}],"notices":[{"title":"Terms + of Use","description":["By submitting an RDAP query, you agree that you will + use this data only for","lawful purposes and that, under no circumstances will + you use this data to:","(1) allow, enable, or otherwise support the transmission + by email, telephone,","or facsimile of mass, unsolicited, commercial advertising, + or spam; or","(2) enable high volume, automated, or electronic processes that + send queries,","data, or email to MarkMonitor (or its systems) or the domain + name contacts (or","its systems).","MarkMonitor reserves the right to modify + these terms at any time.","By submitting this query, you agree to abide by this + policy.","MarkMonitor Domain Management(TM)","Protecting companies and consumers + in a digital world.","Visit MarkMonitor at https://www.markmonitor.com","Contact + us at +1.8007459229","In Europe, at +44.02032062220"],"links":[{"value":"https://www.markmonitor.com/legal/domain-management-terms-and-conditions","rel":"related","href":"https://www.markmonitor.com/legal/domain-management-terms-and-conditions","type":"text/html"}]},{"title":"Status Codes","description":["For more information on domain status codes, please visit - https:\/\/icann.org\/epp"],"links":[{"href":"https:\/\/icann.org\/epp","type":"text\/html"}]},{"title":"RDDS + https://icann.org/epp."],"links":[{"value":"https://icann.org/epp","rel":"related","href":"https://icann.org/epp","type":"text/html"}]},{"title":"RDDS Inaccuracy Complaint Form","description":["URL of the ICANN RDDS Inaccuracy - Complaint Form: https:\/\/icann.org\/wicf"],"links":[{"href":"https:\/\/icann.org\/wicf","type":"text\/html"}]}]}' + Complaint Form: https://www.icann.org/wicf."],"links":[{"value":"https://www.icann.org/wicf","rel":"related","href":"https://www.icann.org/wicf","type":"text/html"}]}],"links":[{"value":"https://rdap.markmonitor.com/rdap/domain/google.com","rel":"self","href":"https://rdap.markmonitor.com/rdap/domain/google.com","type":"application/rdap+json"}],"rdapConformance":["rdap_level_0","icann_rdap_technical_implementation_guide_0","icann_rdap_response_profile_0"],"port43":"whois.markmonitor.com"}' content_type: text/plain headers: Access-Control-Allow-Origin: '*' - Strict-Transport-Security: max-age=15768000; includeSubDomains; preload + Content-Disposition: inline;filename=f.txt + Content-Security-Policy: default-src 'none'; script-src 'none'; style-src 'none'; + img-src 'none'; connect-src 'none'; font-src 'none'; frame-ancestors 'none'; + form-action 'none' + Strict-Transport-Security: tmax-age=15768000 + Transfer-Encoding: chunked + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block method: GET status: 200 - url: https://rdap.verisign.com/com/v1/domain/google.com + url: https://rdap.markmonitor.com/rdap/domain/GOOGLE.COM diff --git a/tests/test_public_interface.py b/tests/test_public_interface.py index 21207f5..4b2678d 100644 --- a/tests/test_public_interface.py +++ b/tests/test_public_interface.py @@ -11,7 +11,6 @@ import whoisit - BASE_DIR = Path(__file__).resolve().parent RESPONSES = BASE_DIR / "responses" UTC = timezone.utc @@ -66,28 +65,28 @@ def test_domain_interface_1(self): whoisit.bootstrap() resp = whoisit.domain("google.com") self.assertEqual(resp["type"], "domain") - self.assertEqual(resp["name"], "GOOGLE.COM") + self.assertEqual(resp["name"], "google.com") self.assertEqual(resp["handle"], "2138514_DOMAIN_COM-VRSN") self.assertEqual(resp["rir"], "") - self.assertEqual(resp["registration_date"], datetime(1997, 9, 15, 4, 0, tzinfo=UTC)) - self.assertEqual(resp["url"], "https://rdap.verisign.com/com/v1/domain/GOOGLE.COM") + self.assertEqual(resp["registration_date"], datetime(1997, 9, 15, 7, 0, tzinfo=UTC)) + self.assertEqual(resp["url"], "https://rdap.markmonitor.com/rdap/domain/google.com") self.assertEqual( resp["terms_of_service_url"], - "https://www.verisign.com/domain-names/registration-data-access-protocol/terms-service/index.xhtml", + "https://www.markmonitor.com/legal/domain-management-terms-and-conditions", ) - self.assertEqual(resp["whois_server"], "") + self.assertEqual(resp["whois_server"], "whois.markmonitor.com") self.assertEqual(resp["copyright_notice"], "") self.assertEqual(resp["dnssec"], False) - self.assertEqual(resp["nameservers"], ["NS1.GOOGLE.COM", "NS2.GOOGLE.COM", "NS3.GOOGLE.COM", "NS4.GOOGLE.COM"]) + self.assertEqual(resp["nameservers"], ["ns1.google.com", "ns2.google.com", "ns3.google.com", "ns4.google.com"]) self.assertEqual( resp["status"], [ - "client delete prohibited", - "client transfer prohibited", "client update prohibited", - "server delete prohibited", - "server transfer prohibited", + "client transfer prohibited", + "client delete prohibited", "server update prohibited", + "server transfer prohibited", + "server delete prohibited", ], ) self.assertTrue(isinstance(resp["entities"]["registrar"], list)) @@ -289,28 +288,28 @@ async def test_domain_interface_1(self): await whoisit.bootstrap_async() resp = await whoisit.domain_async("google.com") self.assertEqual(resp["type"], "domain") - self.assertEqual(resp["name"], "GOOGLE.COM") + self.assertEqual(resp["name"], "google.com") self.assertEqual(resp["handle"], "2138514_DOMAIN_COM-VRSN") self.assertEqual(resp["rir"], "") - self.assertEqual(resp["registration_date"], datetime(1997, 9, 15, 4, 0, tzinfo=UTC)) - self.assertEqual(resp["url"], "https://rdap.verisign.com/com/v1/domain/GOOGLE.COM") + self.assertEqual(resp["registration_date"], datetime(1997, 9, 15, 7, 0, tzinfo=UTC)) + self.assertEqual(resp["url"], "https://rdap.markmonitor.com/rdap/domain/google.com") self.assertEqual( resp["terms_of_service_url"], - "https://www.verisign.com/domain-names/registration-data-access-protocol/terms-service/index.xhtml", + "https://www.markmonitor.com/legal/domain-management-terms-and-conditions", ) - self.assertEqual(resp["whois_server"], "") + self.assertEqual(resp["whois_server"], "whois.markmonitor.com") self.assertEqual(resp["copyright_notice"], "") self.assertEqual(resp["dnssec"], False) - self.assertEqual(resp["nameservers"], ["NS1.GOOGLE.COM", "NS2.GOOGLE.COM", "NS3.GOOGLE.COM", "NS4.GOOGLE.COM"]) + self.assertEqual(resp["nameservers"], ["ns1.google.com", "ns2.google.com", "ns3.google.com", "ns4.google.com"]) self.assertEqual( resp["status"], [ - "client delete prohibited", - "client transfer prohibited", "client update prohibited", - "server delete prohibited", - "server transfer prohibited", + "client transfer prohibited", + "client delete prohibited", "server update prohibited", + "server transfer prohibited", + "server delete prohibited", ], ) self.assertTrue(isinstance(resp["entities"]["registrar"], list))