-- [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') ) ) 끝. 돌아가다 스위트