Модуль:Участник:NirvanaBot/Portal settings helper/tests

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Документация

Это тест-кейсы для модуля Модуль:Участник:NirvanaBot/Portal settings helper. Результаты см. здесь.

-- Юнит-тесты для [[Модуль:Участник:NirvanaBot/Portal settings helper]]. Нажмите стр. обс. чтобы запустить тесты.
local p = require('Module:UnitTests')
local mModule = require('Module:Участник:NirvanaBot/Portal settings helper')

-- parseCategoryList tests.
function p:test_parse_no_category_argument()
    self:preprocess_equals('{{#invoke:Участник:NirvanaBot/Portal settings helper | parseCategoryList}}', 'categorylist argument not found')
end

--function p:test_parse_1_category_call_as_template()
--    self:preprocess_equals('{{#invoke:Участник:NirvanaBot/Portal settings helper | parseCategoryList| categorylist=Компьютерные сети}}', 'OK')
--end

function p:test_parse_1_category()
	self:equals_deep('Table comparison', mModule._parseCategoryList('Компьютерные сети'), {'Компьютерные сети'})
end

function p:test_parse_1_category_quoted()
	self:equals_deep('Table comparison', mModule._parseCategoryList('"Компьютерные сети"'), {'Компьютерные сети'})
end

function p:test_parse_many_categories()
	self:equals_deep('Table comparison', mModule._parseCategoryList('Компьютерные сети, Цифровой анархизм, Хакерство'), {'Компьютерные сети', 'Цифровой анархизм', 'Хакерство'})
--    self:preprocess_equals('{{#invoke:Участник:NirvanaBot/Category list parser | main| categorylist=Компьютерные сети, Цифровой анархизм, Хакерство}}', 'OK')
end

function p:test_parse_many_categories_quoted()
    self:equals_deep('Table comparison', mModule._parseCategoryList('"Компьютерные сети", "Цифровой анархизм", "Хакерство"'), {'Компьютерные сети', 'Цифровой анархизм', 'Хакерство'})
end

function p:test_parse_category_with_comma()
	local actual = mModule._parseCategoryList('"Незавершённые статьи по истории Белоруссии", "События в Белоруссии", "Террористические акты, совершённые в Белоруссии"')
	local expected = {'Незавершённые статьи по истории Белоруссии', 'События в Белоруссии', 'Террористические акты, совершённые в Белоруссии'}
    self:equals_deep('Table comparison', actual, expected)
end

-- wikifyCategoryList tests --

function p:test_wikify_no_category_argument()
    self:preprocess_equals('{{#invoke:Участник:NirvanaBot/Portal settings helper | wikifyCategoryList}}', 'categorylist argument not found')
end
 
function p:test_wikify_1_category_as_template()
    self:preprocess_equals('{{#invoke:Участник:NirvanaBot/Portal settings helper | wikifyCategoryList| categorylist=Компьютерные сети}}', '[[:Категория:Компьютерные сети|Компьютерные сети]]')
end
 
function p:test_wikify_1_category()
	self:equals_deep('Table comparison', mModule._wikifyCategoryList('Компьютерные сети'), '[[:Категория:Компьютерные сети|Компьютерные сети]]')
end
 
function p:test_wikify_1_category_quoted()
	self:equals_deep('Table comparison', mModule._wikifyCategoryList('"Компьютерные сети"'), '[[:Категория:Компьютерные сети|Компьютерные сети]]')
end

function p:test_wikify_1_category_quoted_as_template()
	self:preprocess_equals('{{#invoke:Участник:NirvanaBot/Portal settings helper | wikifyCategoryList| categorylist="Компьютерные сети"}}', '[[:Категория:Компьютерные сети|Компьютерные сети]]')
end
 
function p:test_wikify_many_categories()
	self:equals_deep('Table comparison', mModule._wikifyCategoryList('Компьютерные сети, Цифровой анархизм, Хакерство'), '[[:Категория:Компьютерные сети|Компьютерные сети]], [[:Категория:Цифровой анархизм|Цифровой анархизм]], [[:Категория:Хакерство|Хакерство]]')
end

function p:test_wikify_many_categories_as_template()
    self:preprocess_equals('{{#invoke:Участник:NirvanaBot/Portal settings helper | wikifyCategoryList| categorylist=Компьютерные сети, Цифровой анархизм, Хакерство}}', 
    	'[[:Категория:Компьютерные сети|Компьютерные сети]], [[:Категория:Цифровой анархизм|Цифровой анархизм]], [[:Категория:Хакерство|Хакерство]]')
end

function p:test_wikify_many_categories_quoted()
    self:equals_deep('Table comparison', mModule._wikifyCategoryList('"Компьютерные сети", "Цифровой анархизм", "Хакерство"'), '[[:Категория:Компьютерные сети|Компьютерные сети]], [[:Категория:Цифровой анархизм|Цифровой анархизм]], [[:Категория:Хакерство|Хакерство]]')
end

function p:test_wikify_many_categories_quoted_as_template()
    self:preprocess_equals('{{#invoke:Участник:NirvanaBot/Portal settings helper | wikifyCategoryList| categorylist="Компьютерные сети", "Цифровой анархизм", "Хакерство"}}', 
    	'[[:Категория:Компьютерные сети|Компьютерные сети]], [[:Категория:Цифровой анархизм|Цифровой анархизм]], [[:Категория:Хакерство|Хакерство]]')
end


function p:test_wikify_category_with_comma()
	local actual = mModule._wikifyCategoryList('"Незавершённые статьи по истории Белоруссии", "События в Белоруссии", "Террористические акты, совершённые в Белоруссии"')
	local expected = '[[:Категория:Незавершённые статьи по истории Белоруссии|Незавершённые статьи по истории Белоруссии]], [[:Категория:События в Белоруссии|События в Белоруссии]], [[:Категория:Террористические акты, совершённые в Белоруссии|Террористические акты, совершённые в Белоруссии]]'
    self:equals_deep('Table comparison', actual, expected)
end

function p:test_wikify_category_with_comma_as_template()
	local expected = '[[:Категория:Незавершённые статьи по истории Белоруссии|Незавершённые статьи по истории Белоруссии]], [[:Категория:События в Белоруссии|События в Белоруссии]], [[:Категория:Террористические акты, совершённые в Белоруссии|Террористические акты, совершённые в Белоруссии]]'
	self:preprocess_equals('{{#invoke:Участник:NirvanaBot/Portal settings helper | wikifyCategoryList| categorylist="Незавершённые статьи по истории Белоруссии", "События в Белоруссии", "Террористические акты, совершённые в Белоруссии"}}', expected)
end

-- petscan tests --

function p:test_petscan_no_category_argument()
    self:preprocess_equals('{{#invoke:Участник:NirvanaBot/Portal settings helper | petscan}}', 'categorylist argument not found')
end

function p:test_petscan_no_depth_argument()
    self:preprocess_equals('{{#invoke:Участник:NirvanaBot/Portal settings helper | petscan|categorylist=Компьютерные сети}}', 'depth argument not found')
end

function p:test_petscan_no_hours_argument()
    self:preprocess_equals('{{#invoke:Участник:NirvanaBot/Portal settings helper | petscan|categorylist=Компьютерные сети|depth=5|only_new=1}}', 'hours argument not found')
end

function p:test_petscan_1_category()
	local expected = 'https://petscan.wmflabs.org/?language=ru&project=wikipedia&depth=5&categories=%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D1%8B%D0%B5+%D1%81%D0%B5%D1%82%D0%B8&negcats=&ns%5B0%5D=1&templates_any=&combination=union&max_age=&sortby=title&format=html&interface_language=ru&doit=1'
    self:preprocess_equals('{{#invoke:Участник:NirvanaBot/Portal settings helper | petscan| categorylist=Компьютерные сети|depth=5|ns=0}}', expected)
end

function p:test_petscan_1_category_only_new()
	local expected = 'https://petscan.wmflabs.org/?language=ru&project=wikipedia&depth=5&categories=%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D1%8B%D0%B5+%D1%81%D0%B5%D1%82%D0%B8&negcats=&ns%5B0%5D=1&templates_any=&combination=union&max_age=500&only_new=on&sortorder=descending&format=html&interface_language=ru&doit=1'
    self:preprocess_equals_preprocess('{{#invoke:Участник:NirvanaBot/Portal settings helper | petscan| categorylist=Компьютерные сети|depth=5|hours=500|ns=0|only_new=1}}', expected)
end

function p:test_catscan_many_categories()
    self:preprocess_equals('{{#invoke:Участник:NirvanaBot/Portal settings helper | petscan| categorylist="Компьютерные сети", "Цифровой анархизм", "Хакерство"|depth=5|hours=500}}', 'OK')
end
return p