모듈:기밀 IP 주소/블록 텍스트/테스트 케이스

Module
< 모듈:기밀 IP 주소 블록 텍스트
-- [Module]의 유닛 테스트:기밀 IP 주소/블록 텍스트]]  현지의 mBlockText(블록텍스트) = 요구하다('모듈:기밀 IP 주소/블록 텍스트') 현지의 스크리분토 유닛 = 요구하다('모듈:스크리분토 유닛') 현지의 스위트 = 스크리분토 유닛:신규()  현지의 mBlock Text Functions = mBlockText(블록텍스트)._export 기능() 현지의 해석 제목 = mBlock Text Functions.해석 제목 현지의 fetch Sensitivity Data = mBlock Text Functions.fetch Sensitivity Data 현지의 parse Sensitivity Data = mBlock Text Functions.parse Sensitivity Data 현지의 render Message = mBlock Text Functions.render Message  ------------------------------------------------------------------------------- -- parseTitle 테스트 -------------------------------------------------------------------------------  기능. 스위트:test_filen_special_block_with_filen4_address()  자신:assert Equals(동일)(   '1.2.3.4',   해석 제목(.직함.신규('스페셜:블록 / 1.2.3.4'))  ) 끝.  기능. 스위트:test_snot_special_block_with_snot4_range()  자신:assert Equals(동일)(   '1.2.3.0/24',   해석 제목(.직함.신규('스페셜:블록 / 1.2.3.0/24'))  ) 끝.  기능. 스위트:test_filen_special_block_with_filen6_address()  자신:assert Equals(동일)(   '2001:db8::ff00:12:3456',   해석 제목(.직함.신규('스페셜:블록/2001:db8::ff00:12:3456'))  ) 끝.  기능. 스위트:test_syslog_special_block_with_syslog6_range()  자신:assert Equals(동일)(   '2001:db8::ff00:12:0/syslog',   해석 제목(.직함.신규('스페셜:블록/2001:db8::ff00:12:0/122'))  ) 끝.  기능. 스위트:test_filter_special_block_with_filters()  자신:assert Equals(동일)(   제로,   해석 제목(.직함.신규('스페셜:블록/예'))  ) 끝.  기능. 스위트:test_displays_special_block_with_non_normalized_displays6_address()  자신:assert Equals(동일)(   '2001:db8::ff00:12:3456',   해석 제목(.직함.신규('스페셜:블록/2001:db8:0:0::ff00:12:3456'))  ) 끝.  기능. 스위트:test_snot_special_block_with_snot_snot_address()  자신:assert Equals(동일)(   제로,   해석 제목(.직함.신규('스페셜:블록 / 1.2.3.256'))  ) 끝.  기능. 스위트:test_filench_special_block_in_프랑스어()  자신:assert Equals(동일)(   '1.2.3.4',   해석 제목(.직함.신규('스페셜:블로커 / 1.2.3.4'))  ) 끝.  ------------------------------------------------------------------------------- -- fetch Sensitivity Data 테스트 -- -- 여기에서는 라이브 감도 데이터에 대해 테스트합니다.즉, 이 데이터는 --모듈로 인해 테스트가 실패할 수 있습니다.이것은 격리에는 나쁘지만 -- 인터페이스가 동작하고 있는 것을 간단하게 확인합니다.검정 기회를 줄이는 방법 -- 데이터 변경으로 인한 장애, 1~2개의 항목만 테스트, -- 변경 가능성이 가장 낮은 항목 및 데이터 포인트만 테스트합니다. --필요. -------------------------------------------------------------------------------  기능. 스위트:test_sensitivity_data_for_us_sensitivity_ip()  현지의 ipData = fetch Sensitivity Data('156.33.0.1')  자신:assert Equals(동일)('usenate', ipData.감응 팁.일치하다[1]['clos-id'])  자신:assert Equals(동일)('156.33.0.1', ipData.감응 팁.일치하다[1].아이피)  자신:assert True(참)(ipData.감응 팁.엔티티.usenate의.묘사:발견하다('상원'))  자신:assert Equals(동일)('정치적', ipData.감응 팁.엔티티.usenate의.이유) 끝.  기능. 스위트:test_sensitivity_data_for_us_sensitivity_range()  현지의 ipData = fetch Sensitivity Data('156.33.0.0/24')  자신:assert Equals(동일)('usenate', ipData.감응 팁.일치하다[1]['clos-id'])  자신:assert Equals(동일)('156.33.0.0/24', ipData.감응 팁.일치하다[1].범위)  자신:assert True(참)(ipData.감응 팁.엔티티.usenate의.묘사:발견하다('상원'))  자신:assert Equals(동일)('정치적', ipData.감응 팁.엔티티.usenate의.이유) 끝.  기능. 스위트:test_wmf_ip의 경우 test_sensitivity_data_for_wmf_ip()  현지의 ipData = fetch Sensitivity Data('185.15.56.1')  자신:assert Equals(동일)('wmf', ipData.감응 팁.일치하다[1]['clos-id'])  자신:assert Equals(동일)('185.15.56.1', ipData.감응 팁.일치하다[1].아이피)  자신:assert True(참)(ipData.감응 팁.엔티티.wmf.묘사:발견하다('위키미디어 재단'))  자신:assert Equals(동일)('테크니컬', ipData.감응 팁.엔티티.wmf.이유) 끝.  기능. 스위트:test_sensitivity_data_for_private_ip()  현지의 ipData = fetch Sensitivity Data('10.0.0.1')  자신:assert Equals(동일)(0, #ipData.감응 팁.일치하다) 끝.  ------------------------------------------------------------------------------- -- parse Sensitivity Data 테스트 -------------------------------------------------------------------------------  기능. 스위트:test_sensitivity_data_for_us_sensitivity_ip()  현지의 ipData = {   감응 팁 = {    엔티티 = {     usenate의 = {      묘사 = 미국 상원,      아이디 = "사용하다",      ipv4 범위 = {"156.33.0.0/16"},      ipv6 범위 = {"2620:0:8a0:/48", "2600:803:618::/48"},      이름. = 미국 상원,      이유 = "정치적",     },    },    ["contract-ids"] = {"사용하다"},    ["대화-대화"] = {     ["156.33.0.0/16"] = {      ["contract-id"] = "사용하다",      ["ip 버전"] = 「IPv4」,      범위 = "156.33.0.0/16",     },    },    일치하다 = {     {      ["contract-id"] = "사용하다",      아이피 = "156.33.0.1",      ["ip 버전"] = 「IPv4」,      ["표준 범위"] = "156.33.0.0/16",      유형 = "ip",     },    },   },  }  자신:assert Deep Equals(심층 등)(   {    유형 = 'ip',    아이피 = '156.33.0.1',    ['clos-id'] = 'usenate',    ['표준 범위'] = '156.33.0.0/16',    ['이름'] = '미국 상원',    ['description'] = '[미국 상원]',    이유 = '정치적',   },   parse Sensitivity Data(ipData)  ) 끝.  기능. 스위트:test_sensitivity_data_for_us_sensitivity_range()  현지의 ipData = {   감응 팁 = {    엔티티 = {     usenate의 = {      묘사 = 미국 상원,      아이디 = "사용하다",      ipv4 범위 = {"156.33.0.0/16"},      ipv6 범위 = {"2620:0:8a0:/48", "2600:803:618::/48"},      이름. = 미국 상원,      이유 = "정치적",     },    },    ["contract-ids"] = {"사용하다"},    ["대화-대화"] = {     ["156.33.0.0/16"] = {      ["contract-id"] = "사용하다",      ["ip 버전"] = 「IPv4」,      범위 = "156.33.0.0/16",     },    },    일치하다 = {     {      ["contract-id"] = "사용하다",      ["ip 버전"] = 「IPv4」,      ["표준 범위"] = "156.33.0.0/16",      범위 = "156.33.0.0/24",      유형 = "범위",     },    },   },  }  자신:assert Deep Equals(심층 등)(   {    유형 = '범위',    범위 = '156.33.0.0/24',    ['clos-id'] = 'usenate',    ['표준 범위'] = '156.33.0.0/16',    ['이름'] = '미국 상원',    ['description'] = '[미국 상원]',    이유 = '정치적',   },   parse Sensitivity Data(ipData)  ) 끝.  기능. 스위트:test_sensitivity_data_wheeln_no_match_sensitive()  현지의 ipData = {   감응 팁 = {    엔티티 = {},    ["contract-ids"] = {},    ["대화-대화"] = {},    일치하다 = {},   },  }  자신:assert Equals(동일)(제로, parse Sensitivity Data(ipData)) 끝.  기능. 스위트:test_sensitivity_data_when_an_error_module()  현지의 ipData = {   에러 = {    ["*"] = "API 사용에 대해서는 https://en.wikipedia.org/wiki/Module:Sensitive_IP_addresses/API을 참조하십시오.",    코드 = "test-string",    정보 = "테스트 문자열 #1 'foo'가 올바른 IP 주소 또는 CIDR 문자열이 아닙니다.",   },  }  자신:assert Equals(동일)(제로, parse Sensitivity Data(ipData)) 끝.  ------------------------------------------------------------------------------- --renderMessage 테스트 -------------------------------------------------------------------------------  기능. 스위트:test_message_message_with_ip()  자신:assert Equals(동일)(   '1: ip, 2: 156.33.0.1, 3: 156.33.0/16, 4: usenate,'   .. '5: 미합중국 상원, 6: 미합중국 상원', '   .. '7: 정치',   render Message(    '1: $1, 2: $2, 3: $3, 4: $4, 5: $5, 6: $6, 7: $7',    {     유형 = 'ip',     아이피 = '156.33.0.1',     ['clos-id'] = 'usenate',     ['표준 범위'] = '156.33.0.0/16',     ['이름'] = '미국 상원',     ['description'] = '[미국 상원]',     이유 = '정치적',    }   )  ) 끝.  기능. 스위트:test_message_message_message_with_range()  자신:assert Equals(동일)(   '1: 범위, 2: 156.33.0.0/24, 3: 156.33.0.0/16, 4: usenate,'   .. '5: 미합중국 상원, 6: 미합중국 상원', '   .. '7: 정치',   render Message(    '1: $1, 2: $2, 3: $3, 4: $4, 5: $5, 6: $6, 7: $7',    {     유형 = '범위',     범위 = '156.33.0.0/24',     ['clos-id'] = 'usenate',     ['표준 범위'] = '156.33.0.0/16',     ['이름'] = '미국 상원',     ['description'] = '[미국 상원]',     이유 = '정치적',    }   )  ) 끝.   기능. 스위트:test_message_message_message_message_with_ip_message_mess()  자신:assert Equals(동일)(   'IP 주소',   render Message(    '{{#ifeq: $1 IP address IP range}}',    {     유형 = 'ip',     아이피 = '156.33.0.1',     ['clos-id'] = 'usenate',     ['표준 범위'] = '156.33.0.0/16',     ['이름'] = '미국 상원',     ['description'] = '[미국 상원]',     이유 = '정치적',    }   )  ) 끝.  -------------------------------------------------------------------------------- -- 주요 테스트 --------------------------------------------------------------------------------  기능. 스위트:test_main()  자신:assert Equals(동일)(   'IP 주소 156.33.0.1은 ID가 "usenate"인 엔티티에 속합니다.',   mBlockText(블록텍스트).메인(    {     메세지 = '{#ifeq: $1 IP address IP range}: $2'     .. 'ID가 "$4"인 엔티티에 할당됩니다.',    },       .직함.신규('스페셜:블록/156.33.0.1')   )  ) 끝. 돌아가다 스위트