<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://jak.mazovia.edu.pl/index.php?action=history&amp;feed=atom&amp;title=Jak_za%C4%8D%C3%ADt_s_testov%C3%A1n%C3%ADm_v_Pythonu_pomoc%C3%AD_pytest</id>
	<title>Jak začít s testováním v Pythonu pomocí pytest - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://jak.mazovia.edu.pl/index.php?action=history&amp;feed=atom&amp;title=Jak_za%C4%8D%C3%ADt_s_testov%C3%A1n%C3%ADm_v_Pythonu_pomoc%C3%AD_pytest"/>
	<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=Jak_za%C4%8D%C3%ADt_s_testov%C3%A1n%C3%ADm_v_Pythonu_pomoc%C3%AD_pytest&amp;action=history"/>
	<updated>2026-09-13T22:29:25Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://jak.mazovia.edu.pl/index.php?title=Jak_za%C4%8D%C3%ADt_s_testov%C3%A1n%C3%ADm_v_Pythonu_pomoc%C3%AD_pytest&amp;diff=103125&amp;oldid=prev</id>
		<title>CarinaTobin217 o 18:57, 21 sie 2026</title>
		<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=Jak_za%C4%8D%C3%ADt_s_testov%C3%A1n%C3%ADm_v_Pythonu_pomoc%C3%AD_pytest&amp;diff=103125&amp;oldid=prev"/>
		<updated>2026-08-21T18:57:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;pl&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← poprzednia wersja&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Wersja z 18:57, 21 sie 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Linia 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linia 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Postup převodu schématu a dat Pro převod schématu použijte nástroj jako pgloader nebo ruční skript. Pokud migrujete ručně, začněte vytvořením databáze &lt;/del&gt;v &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PostgreSQL a postupně vytvářejte tabulky. Nahraďte AUTO_INCREMENT za SERIAL nebo GENERATED AS IDENTITY&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;upravte ENUM &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;CREATE TYPE, a převeďte datumové a časové typy podle potřeby&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Následně exportujte data z MySQL do CSV nebo SQL souboru a importujte je pomocí COPY nebo psql. Vždy před importem vypněte kontroly cizích klíčů, abyste předešli chybám pořadí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Poslední rada&lt;/del&gt;: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sledujte metriky, ale ne ty povrchní. Nesledujte jen&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kolik nasazení proběhne za týden. Sledujte&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jak rychle se daří obnovit službu po výpadku&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jak dlouho trvá projít od změny kódu po produkci a jak často dochází k selhání nasazení&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tyto ukazatele vám řeknou víc než počet automatizovaných testů&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Až budete mít vše stabilní, můžete postupně rozšiřovat rozsah – přidávat další prostředí&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;další týmy &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;další automatizaci.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Začněte tím, že si definujete výstup analýzy. Nejde o &lt;/del&gt;to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;napsat tlustý dokument&lt;/del&gt;, ale &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;o to, aby měl tým jasno &lt;/del&gt;v &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;akceptačních kritériích&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hranicích systému a možných technických omezeních&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;V praxi to znamená odhadnout analytický čas podle počtu neznámých proměnných. Pokud máte úkol s vysokou nejistotou, věnujte analýze více času, ale vždy s jasným časovým limitem&lt;/del&gt;, aby se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;z ní nestala nekonečná rešerše. Užitečný je princip „timeboxing&quot;, kdy si analytik vyhradí konkrétní hodiny, po jejichž uplynutí se rozhodne, zda je třeba analýzu rozšířit, nebo ji předat k implementaci.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nakonec si dejte pozor &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;příliš složité nástroje, které vyžadují rozsáhlé školení. I když mají bohaté možnosti, jejich konfigurace může být natolik komplexní, že ji tým nebude efektivně využívat. Raději zvolte nástroj, který je jednoduchý &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pochopení a jeho nastavení je transparentní&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Po nasazení sledujte&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zda se snižuje počet konfliktů ve verzovacím systému a zda se noví členové týmu rychle zapracují. Pokud se tak nestane, znamená to, že konfigurace není dostatečně jednotná a je třeba ji upravit&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Typickým problémem &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;rozdílné chování prázdných řetězců a NULL&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;MySQL ukládá prázdný řetězec &lt;/del&gt;jako &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zatímco PostgreSQL rozlišuje mezi &#039;&#039; &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;NULL – pokud aplikace spoléhá na prázdný řetězec, může dojít &lt;/del&gt;k &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;logickým chybám&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Dále &lt;/del&gt;si &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pohlídejte práci s celočíselnými děleními: v MySQL je 5/2 rovno 2&lt;/del&gt;, v &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PostgreSQL je to 2.5&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;což může rozbít výpočty. Proveďte důkladný test všech dotazů, zejména těch, které používají agregační funkce, GROUP BY nebo poddotazy.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nejprve si vytvořte kompletní inventář schématu: seznam tabulek, indexů, pohledů, triggerů &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;uložených procedur&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;V MySQL se často používají typy jako TINYINT, ENUM nebo AUTO_INCREMENT, zatímco PostgreSQL preferuje SMALLINT, vlastní enum typy &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sekvence. Při převodu datových typů dejte pozor na rozdíly v práci s řetězci: MySQL porovnává texty case-insensitive podle collation, PostgreSQL je case-sensitive, což může změnit výsledky dotazů&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nejprve je potřeba pytest nainstalovat. To provedete příkazem pip install pytest v terminálu. Po instalaci vytvořte soubor s názvem test_example.py. Název musí začínat nebo končit slovem test, aby pytest soubor automaticky našel. V tomto souboru definujte funkce, jejichž názvy také začínají test_. Uvnitř funkcí použijte běžné assert pro ověření výsledku. Pytest pak spustíte příkazem pytest v adresáři s testem.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Jak zjistit reálný poměr mezi analýzou &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kódováním Místo odhadů „od oka&quot; použijte historická data z předchozích sprintů&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Podívejte &lt;/del&gt;se, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kolik času skutečně zabrala analýza &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kolik implementace u podobných úkolů&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Zjistíte&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;že některé typy úkolů&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jako &lt;/del&gt;jsou změny &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;v databázovém schématu nebo napojení na externí služby, vyžadují výrazně více analytické práce&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Naopak rutinní úpravy formulářů &lt;/del&gt;nebo &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hlášek mívají analýzu krátkou&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tato data &lt;/del&gt;vám umožní &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kalibrovat odhad podle reálné historie&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nikoli podle přání&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Když &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;řekne API&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mnoho začátečníků si představí něco složitého &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nedostupného&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Přitom jde &lt;/del&gt;o &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jednoduchý koncept: API je rozhraní&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;které umožňuje dvěma programům spolu komunikovat&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Můžeš si ho představit jako číšníka v restauraci – objednáš jídlo (pošleš požadavek) &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;on ti donese výsledek (odpověď)&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pro první kroky nemusíš mít žádné speciální nástroje&lt;/del&gt;, stačí &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ti prohlížeč &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;textový editor&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Testování &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nedílnou součástí vývoje softwaru&lt;/del&gt;, a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pokud píšete &lt;/del&gt;v &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pythonu&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pytest &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jedním z nejpoužívanějších nástrojů&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Jeho hlavní výhoda spočívá v jednoduché syntaxi &lt;/del&gt;– &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;testy píšete jako obyčejné funkce&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;bez nutnosti tříd nebo speciálních dekorátorů&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Díky tomu &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;snadno učí &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;dobře se čte&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;V tomto článku &lt;/del&gt;si &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ukážeme&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jak začít&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;na co si dát pozor &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jak &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vyhnout častým chybám&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Jak převést návrh do funkčního kódu bez zbytečných chyb Při implementaci designu se nejčastěji chybuje &lt;/ins&gt;v &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;detailech&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;které &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;první pohled nevypadají důležité&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Například ignorování stavů prvků&lt;/ins&gt;: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hover&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;focus&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;active&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;disabled&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Uživatelé s klávesnicí nebo čtečkou obrazovky potřebují viditelný focus&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Proto vždy nastavte viditelný outline pro klávesové ovládání&lt;/ins&gt;, a to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nejen v CSS&lt;/ins&gt;, ale &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;i &lt;/ins&gt;v &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;JavaScriptu – pokud nějaký prvek dynamicky přidáváte&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nezapomeňte mu nastavit příslušné ARIA atributy&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Dále si hlídejte velikost cílových oblastí – tlačítka by měla mít minimálně 44×44 pixelů&lt;/ins&gt;, aby se na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ně dobře trefilo prstem &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;dotykovém zařízení&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Kontrolujte také kontrast textu vůči pozadí; WCAG doporučuje poměr alespoň 4&lt;/ins&gt;,&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;5:1 pro běžný text&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Verzování &lt;/ins&gt;je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;disciplína, kterou řada webových vývojářů zpočátku podceňuje&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Často začínají ukládat soubory do složek &lt;/ins&gt;jako &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;„final_v2&quot; nebo „opraveno_final3&quot;. Tento přístup ale rychle vede k chaosu&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ztrátě práce &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;neschopnosti vrátit se &lt;/ins&gt;k &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;funkční verzi&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Místo toho se vyplatí osvojit &lt;/ins&gt;si &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;systém&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;který sleduje změny &lt;/ins&gt;v &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kódu&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;umožňuje návrat &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;usnadňuje týmovou spolupráci&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tento článek vás provede základy verzování s důrazem na praktické kroky &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;časté chyby&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nejprve je potřeba pytest nainstalovat. To provedete příkazem pip install pytest v terminálu. Po instalaci vytvořte soubor s názvem test_example.py. Název musí začínat nebo končit slovem test, aby pytest soubor automaticky našel. V tomto souboru definujte funkce, jejichž názvy také začínají test_. Uvnitř funkcí použijte běžné assert pro ověření výsledku. Pytest pak spustíte příkazem pytest v adresáři s testem.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Dalším častým problémem je ignorování mezer a odstupů. Návrháři používají systém mezer (často v násobcích základní jednotky, třeba 4px), aby vytvořili rytmus a oddělili logické celky. Když mezery nahradíte univerzálním paddingem nebo marginem podle toho, co zrovna vypadá dobře, rozbijete celou vizuální rovnováhu. Naučte se číst designové specifikace – v nich najdete přesné hodnoty odsazení, velikostí &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;barev&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud taková specifikace chybí, zeptejte &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;designéra&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jaký systém používá. Je to rychlejší, než hádat &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;poté předělávat polovinu komponent&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Základní pracovní postup: commit&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;branch&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;merge Jádrem verzování &lt;/ins&gt;jsou &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tři operace: commit, branch a merge. Commit je uložení aktuálního stavu s popisem &lt;/ins&gt;změny. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Každý commit by měl být malý a logicky ucelený – ideálně jedna oprava &lt;/ins&gt;nebo &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jedna funkce&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Branch (větev) &lt;/ins&gt;vám umožní &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;oddělit experimentální práci od stabilní verze. Merge pak sloučí změny zpět. Pro začátek si osvojte tento rituál: před každou změnou si vytvořte novou větev, udělejte několik commitů s jasnými zprávami (např. „oprava responzivního menu&quot;), a poté větev slučte. Nepoužívejte větve na všechno&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale jen na větší úkoly&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Prvním krokem je nastavit prostředí, ve kterém &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;váš kód sestaví. Použijte předpřipravené akce&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jako je checkout pro získání zdrojového kódu &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;setup-node, pokud pracujete s JavaScriptem. Důležité je pinout verze akcí na konkrétní commit nebo tag, jinak se vám může stát, že se pipeline náhle rozbije kvůli změnám v externí akci. Místo pouhého uvedení názvu akce použijte přesnou verzi, kterou jste testovali&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;To je častý zdroj chyb, který se projeví až po čase.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Pozor také na přístupnost, kterou vývojáři často podceňují. Nejde jen &lt;/ins&gt;o &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;povinnost&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale o praktickou funkčnost&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Uživatelé se zhoršeným zrakem, pohybovým postižením nebo jen s modrým filtrem na obrazovce ocení, když dodržíte kontrastní poměry, nastavíte správné alt texty u obrázků &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;umožníte ovládání klávesnicí&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Typická chyba? Spoléháte na to&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;že &lt;/ins&gt;stačí &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;barevně odlišit tlačítko, ale ignorujete, že barevně slepý uživatel nerozpozná, že je aktivní. Přidejte ikonu nebo textovou změnu kromě barvy, &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;problém je vyřešen&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Na závěr si zapamatujte, že UI/UX není jen práce designéra. Je to společný jazyk, kterým mluvíte s týmem, ale i s uživatelem, pro kterého produkt tvoříte. Když při kódování přemýšlíte o tom, proč je prvek tam, kde &lt;/ins&gt;je, a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jak se uživatel dostane k cíli, stáváte se lepším vývojářem i partnerem &lt;/ins&gt;v &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;týmu. Začněte malými kroky – proveďte si audit stávajícího kódu, najděte nekonzistence a navrhněte opravu. Taková snaha se vyplatí nejen na projektu&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale i v rozvoji vašich vlastních dovedností.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Praktickým krokem &lt;/ins&gt;je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vytvořit si vlastní sadu UI komponent, které sdílejí stejné stavy a chování&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Použijte design tokens &lt;/ins&gt;– &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;proměnné pro barvy, typografii&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mezery. Tyto tokeny pak používejte v celém projektu&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud designér změní primární barvu, stačí změnit jednu proměnnou a vše &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;aktualizuje. Pro vývojáře to znamená méně času na ladění &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;větší konzistenci napříč obrazovkami&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Zároveň &lt;/ins&gt;si &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zvykněte na responzivní design: testujte na malých displejích&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nejen v desktopovém prohlížeči. Ujistěte se&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;že se prvky nepřekrývají &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;že &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;dá vše ovládat i bez myši&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>CarinaTobin217</name></author>
	</entry>
	<entry>
		<id>https://jak.mazovia.edu.pl/index.php?title=Jak_za%C4%8D%C3%ADt_s_testov%C3%A1n%C3%ADm_v_Pythonu_pomoc%C3%AD_pytest&amp;diff=103031&amp;oldid=prev</id>
		<title>SalvatoreLilley o 18:57, 21 sie 2026</title>
		<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=Jak_za%C4%8D%C3%ADt_s_testov%C3%A1n%C3%ADm_v_Pythonu_pomoc%C3%AD_pytest&amp;diff=103031&amp;oldid=prev"/>
		<updated>2026-08-21T18:57:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;pl&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← poprzednia wersja&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Wersja z 18:57, 21 sie 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Linia 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linia 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Pokud &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jde o strukturu projektu&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;neházejte všechno do jednoho souboru&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Rozdělte kód &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;moduly – oddělte routes&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;controllers &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;služby pro práci s daty&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tím získáte přehlednost &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;usnadníte si testování. Pro menší API stačí i tři soubory, ale pro větší projekty &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;dobré zavést složkovou strukturu&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Důležité je taky myslet na CORS – pokud vaše API budou volat prohlížeče z jiné domény&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;musíte povolit příslušné hlavičky, jinak požadavky skončí chybou&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Když se řekne REST API v Node&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;js&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;většina vývojářů sáhne &lt;/del&gt;po &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;frameworku Express. Není to náhoda – Express je minimalistický&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;dobře zdokumentovaný &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;díky své flexibilitě &lt;/del&gt;vám &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;umožní postavit API přesně podle potřeb&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Než ale začnete psát první endpoint&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ujasněte si&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;co vlastně chcete, aby vaše API dělalo. Bez jasné definice zdrojů &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jejich vztahů snadno skončíte u nepřehledného kódu, který se bude těžko udržovat&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Další pastí je zapomínání na okolní prostředí – skript&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;který běží na Windows&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;může selhat na Linuxu kvůli odlišným oddělovačům cest&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Používejte funkce z `pathlib&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Path`&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;které jsou multiplatformní&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a testujte skript na více zařízeních&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pokud to je možné&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Důležité &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;také verzování – i jednoduchý skript uložte do Gitu&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;abyste &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mohli vrátit &lt;/del&gt;k &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;předchozí funkční verzi, když něco rozbijete. Tento návyk se vám vyplatí u všech projektů&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Když přijde &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;responzivní design&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;většina vývojářů sáhne po CSS Gridu nebo Flexboxu&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Oba nástroje &lt;/del&gt;mají &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;své silné stránky&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale &lt;/del&gt;jejich &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kombinace &lt;/del&gt;může být &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;matoucí&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pokud nevíte&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kdy &lt;/del&gt;který &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;použít. Základní pravidlo &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jednoduché: Grid &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ideální pro celkovou strukturu stránky&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zatímco Flexbox &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hodí pro rozmístění prvků v jednom řádku nebo sloupci&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tento článek vám ukáže&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jak na &lt;/del&gt;to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;bez zbytečných obav&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nejdůležitější &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mít funkční portfolio&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Místo pěti rozpracovaných projektů raději tři hotové&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;které běží&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mají čistý kód a jsou zdokumentované&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Publikujte &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;na veřejném repozitáři a připojte krátký popis&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jakou jste řešili výzvu a co jste se naučili&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Personalisti i techničtí lídři si všímají toho&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jestli umíte dotáhnout práci do konce&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Chyba je posílat životopis bez odkazů &lt;/del&gt;nebo &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;s odkazy na nefunkční stránky&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Při psaní testů se vyvarujte častých chyb. První je testování více věcí v jedné funkci – pokud test selže&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nevíte přesně&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;která část je rozbitá&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Rozdělte test na menší celky. Druhou častou chybou je spoléhání &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;na pořadí testů &lt;/del&gt;nebo na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sdílený stav mezi testy. Testy by měly být izolované&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;aby &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;bylo možné spouštět v libovolném pořadí. Třetí chybou je ignorování výjimek – pokud funkce očekává vyhození výjimky&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;použijte pytest.raises a ověřte, že k tomu skutečně dojde. Bez toho test neodhalí chybu&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Na závěr si osvojte práci s příkazy příkazové řádky&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Při spuštění &lt;/del&gt;pytest &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-&lt;/del&gt;v &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;získáte podrobnější výstup o každém testu&lt;/del&gt;, pytest &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-k umožní spustit pouze testy odpovídající zadanému výrazu a pytest --maxfail=1 zastaví běh po prvním selhání&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tyto nástroje vám ušetří čas při ladění&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Testování není zbytečná práce – je to investice, která se vám vrátí &lt;/del&gt;v &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;podobě stabilnějšího kódu a jistoty při změnách. Začněte &lt;/del&gt;s &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;malými testy na jednoduchých funkcích a postupně přidávejte složitější scénáře&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Jak se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vyhnout častým chybám při psaní skriptů Nejčastější chybou začátečníků je tvrdé zakódování cest k souborům&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud použijete absolutní cestu&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;skript bude fungovat pouze &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vašem počítači&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Místo toho použijte relativní cesty &lt;/del&gt;nebo &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;proměnné, které &lt;/del&gt;umožní &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;skript spustit kdekoli. Druhým problémem je ignorování výjimek – soubor nemusí existovat&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;síť může být nedostupná, vstup nemusí odpovídat očekávání. Vždy obalte rizikové operace do bloku `try/except` a na chyby reagujte srozumitelnou hláškou&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Příprava na pohovor: co &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;skutečně ptají Na pohovoru se vás nebudou ptát na definice z učebnice&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale na konkrétní situace&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Typická otázka zní&lt;/del&gt;: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;„Popište&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jak byste navrhli aplikaci pro správu úkolů&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot; Ukažte, že umíte přemýšlet &lt;/del&gt;v &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;souvislostech &lt;/del&gt;– &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;rozdělte problém na menší části, zmiňte databázi, API &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;uživatelské rozhraní&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Když nevíte přesnou odpověď&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;řekněte, jak byste postupovali, abyste ji našli. Nikdy neříkejte „nevím&quot; bez dalšího vysvětlení&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Při práci s externími službami, jako &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;stahování webových stránek&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;používejte knihovny `requests` &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;`BeautifulSoup`&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Dejte si pozor na limity &lt;/del&gt;– &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mnoho webů omezuje počet požadavků&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;takže do skriptu vložte pauzy (např&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;`time.sleep()`) &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;respektujte soubor `robots&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;txt`. Automatizace by nikdy neměla narušovat fungování cizích serverů. Podobně u tabulek využijte `pandas`&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale pamatujte&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;že paměťová náročnost roste s velikostí dat – pro malé soubory stačí `csv` modul&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Postup převodu schématu a dat Pro převod schématu použijte nástroj jako pgloader nebo ruční skript. &lt;/ins&gt;Pokud &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;migrujete ručně&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;začněte vytvořením databáze v PostgreSQL a postupně vytvářejte tabulky&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nahraďte AUTO_INCREMENT za SERIAL nebo GENERATED AS IDENTITY, upravte ENUM &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;CREATE TYPE&lt;/ins&gt;, a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;převeďte datumové a časové typy podle potřeby&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Následně exportujte data z MySQL do CSV nebo SQL souboru &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;importujte &lt;/ins&gt;je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pomocí COPY nebo psql&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Vždy před importem vypněte kontroly cizích klíčů&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;abyste předešli chybám pořadí&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Poslední rada: sledujte metriky, ale ne ty povrchní. Nesledujte jen, kolik nasazení proběhne za týden&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Sledujte&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jak rychle se daří obnovit službu &lt;/ins&gt;po &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;výpadku&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jak dlouho trvá projít od změny kódu po produkci &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jak často dochází k selhání nasazení. Tyto ukazatele &lt;/ins&gt;vám &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;řeknou víc než počet automatizovaných testů&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Až budete mít vše stabilní&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;můžete postupně rozšiřovat rozsah – přidávat další prostředí&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;další týmy &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;další automatizaci&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Začněte tím, že si definujete výstup analýzy. Nejde o to napsat tlustý dokument, ale o to&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;aby měl tým jasno v akceptačních kritériích&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hranicích systému a možných technických omezeních&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;V praxi to znamená odhadnout analytický čas podle počtu neznámých proměnných&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud máte úkol s vysokou nejistotou&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;věnujte analýze více času&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale vždy s jasným časovým limitem&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;aby se z ní nestala nekonečná rešerše&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Užitečný &lt;/ins&gt;je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;princip „timeboxing&quot;, kdy si analytik vyhradí konkrétní hodiny&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;po jejichž uplynutí &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;rozhodne, zda je třeba analýzu rozšířit, nebo ji předat &lt;/ins&gt;k &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;implementaci&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nakonec si dejte pozor &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;příliš složité nástroje&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;které vyžadují rozsáhlé školení&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;I když &lt;/ins&gt;mají &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;bohaté možnosti&lt;/ins&gt;, jejich &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;konfigurace &lt;/ins&gt;může být &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;natolik komplexní&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;že ji tým nebude efektivně využívat. Raději zvolte nástroj&lt;/ins&gt;, který je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jednoduchý na pochopení a jeho nastavení &lt;/ins&gt;je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;transparentní. Po nasazení sledujte&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zda se snižuje počet konfliktů ve verzovacím systému a zda &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;noví členové týmu rychle zapracují&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud se tak nestane&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;znamená &lt;/ins&gt;to&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, že konfigurace není dostatečně jednotná a je třeba ji upravit&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Typickým problémem &lt;/ins&gt;je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;rozdílné chování prázdných řetězců a NULL&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;MySQL ukládá prázdný řetězec jako &#039;&#039;&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zatímco PostgreSQL rozlišuje mezi &#039;&#039; a NULL – pokud aplikace spoléhá na prázdný řetězec&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;může dojít k logickým chybám&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Dále si pohlídejte práci s celočíselnými děleními: v MySQL &lt;/ins&gt;je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;5/2 rovno 2&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;v PostgreSQL je to 2&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;5&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;což může rozbít výpočty&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Proveďte důkladný test všech dotazů, zejména těch, které používají agregační funkce, GROUP BY &lt;/ins&gt;nebo &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;poddotazy&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nejprve si vytvořte kompletní inventář schématu: seznam tabulek, indexů&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pohledů&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;triggerů a uložených procedur&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;V MySQL &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;často používají typy jako TINYINT, ENUM &lt;/ins&gt;nebo &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AUTO_INCREMENT, zatímco PostgreSQL preferuje SMALLINT, vlastní enum typy a sekvence. Při převodu datových typů dejte pozor &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;rozdíly v práci s řetězci: MySQL porovnává texty case-insensitive podle collation&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PostgreSQL &lt;/ins&gt;je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;case-sensitive&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;což může změnit výsledky dotazů&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nejprve je potřeba pytest nainstalovat&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;To provedete příkazem pip install &lt;/ins&gt;pytest v &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;terminálu. Po instalaci vytvořte soubor s názvem test_example.py. Název musí začínat nebo končit slovem test&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;aby &lt;/ins&gt;pytest &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;soubor automaticky našel. V tomto souboru definujte funkce, jejichž názvy také začínají test_&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Uvnitř funkcí použijte běžné assert pro ověření výsledku&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pytest pak spustíte příkazem pytest &lt;/ins&gt;v &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;adresáři &lt;/ins&gt;s &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;testem&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Jak &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zjistit reálný poměr mezi analýzou a kódováním Místo odhadů „od oka&quot; použijte historická data z předchozích sprintů. Podívejte &lt;/ins&gt;se&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, kolik času skutečně zabrala analýza a kolik implementace u podobných úkolů&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Zjistíte, že některé typy úkolů&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jako jsou změny v databázovém schématu nebo napojení &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;externí služby, vyžadují výrazně více analytické práce&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Naopak rutinní úpravy formulářů &lt;/ins&gt;nebo &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hlášek mívají analýzu krátkou. Tato data vám &lt;/ins&gt;umožní &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kalibrovat odhad podle reálné historie&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nikoli podle přání&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Když &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;řekne API&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mnoho začátečníků si představí něco složitého a nedostupného&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Přitom jde o jednoduchý koncept&lt;/ins&gt;: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;API je rozhraní&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;které umožňuje dvěma programům spolu komunikovat&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Můžeš si ho představit jako číšníka &lt;/ins&gt;v &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;restauraci &lt;/ins&gt;– &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;objednáš jídlo (pošleš požadavek) &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;on ti donese výsledek (odpověď)&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pro první kroky nemusíš mít žádné speciální nástroje&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;stačí ti prohlížeč a textový editor&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Testování &lt;/ins&gt;je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nedílnou součástí vývoje softwaru&lt;/ins&gt;, a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pokud píšete v Pythonu, pytest je jedním z nejpoužívanějších nástrojů&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Jeho hlavní výhoda spočívá v jednoduché syntaxi &lt;/ins&gt;– &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;testy píšete jako obyčejné funkce&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;bez nutnosti tříd nebo speciálních dekorátorů&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Díky tomu se snadno učí &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;dobře se čte&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;V tomto článku si ukážeme&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jak začít&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;na co si dát pozor a jak se vyhnout častým chybám&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>SalvatoreLilley</name></author>
	</entry>
	<entry>
		<id>https://jak.mazovia.edu.pl/index.php?title=Jak_za%C4%8D%C3%ADt_s_testov%C3%A1n%C3%ADm_v_Pythonu_pomoc%C3%AD_pytest&amp;diff=102343&amp;oldid=prev</id>
		<title>OrvilleDane8360: Utworzono nową stronę &quot;Pokud jde o strukturu projektu, neházejte všechno do jednoho souboru. Rozdělte kód na moduly – oddělte routes, controllers a služby pro práci s daty. Tím získáte přehlednost a usnadníte si testování. Pro menší API stačí i tři soubory, ale pro větší projekty je dobré zavést složkovou strukturu. Důležité je taky myslet na CORS – pokud vaše API budou volat prohlížeče z jiné domény, musíte povolit příslušné hlavičky, jinak po…&quot;</title>
		<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=Jak_za%C4%8D%C3%ADt_s_testov%C3%A1n%C3%ADm_v_Pythonu_pomoc%C3%AD_pytest&amp;diff=102343&amp;oldid=prev"/>
		<updated>2026-08-21T18:51:19Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot;Pokud jde o strukturu projektu, neházejte všechno do jednoho souboru. Rozdělte kód na moduly – oddělte routes, controllers a služby pro práci s daty. Tím získáte přehlednost a usnadníte si testování. Pro menší API stačí i tři soubory, ale pro větší projekty je dobré zavést složkovou strukturu. Důležité je taky myslet na CORS – pokud vaše API budou volat prohlížeče z jiné domény, musíte povolit příslušné hlavičky, jinak po…&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Pokud jde o strukturu projektu, neházejte všechno do jednoho souboru. Rozdělte kód na moduly – oddělte routes, controllers a služby pro práci s daty. Tím získáte přehlednost a usnadníte si testování. Pro menší API stačí i tři soubory, ale pro větší projekty je dobré zavést složkovou strukturu. Důležité je taky myslet na CORS – pokud vaše API budou volat prohlížeče z jiné domény, musíte povolit příslušné hlavičky, jinak požadavky skončí chybou.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Když se řekne REST API v Node.js, většina vývojářů sáhne po frameworku Express. Není to náhoda – Express je minimalistický, dobře zdokumentovaný a díky své flexibilitě vám umožní postavit API přesně podle potřeb. Než ale začnete psát první endpoint, ujasněte si, co vlastně chcete, aby vaše API dělalo. Bez jasné definice zdrojů a jejich vztahů snadno skončíte u nepřehledného kódu, který se bude těžko udržovat.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Další pastí je zapomínání na okolní prostředí – skript, který běží na Windows, může selhat na Linuxu kvůli odlišným oddělovačům cest. Používejte funkce z `pathlib.Path`, které jsou multiplatformní, a testujte skript na více zařízeních, pokud to je možné. Důležité je také verzování – i jednoduchý skript uložte do Gitu, abyste se mohli vrátit k předchozí funkční verzi, když něco rozbijete. Tento návyk se vám vyplatí u všech projektů.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Když přijde na responzivní design, většina vývojářů sáhne po CSS Gridu nebo Flexboxu. Oba nástroje mají své silné stránky, ale jejich kombinace může být matoucí, pokud nevíte, kdy který použít. Základní pravidlo je jednoduché: Grid je ideální pro celkovou strukturu stránky, zatímco Flexbox se hodí pro rozmístění prvků v jednom řádku nebo sloupci. Tento článek vám ukáže, jak na to bez zbytečných obav.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nejdůležitější je mít funkční portfolio. Místo pěti rozpracovaných projektů raději tři hotové, které běží, mají čistý kód a jsou zdokumentované. Publikujte je na veřejném repozitáři a připojte krátký popis, jakou jste řešili výzvu a co jste se naučili. Personalisti i techničtí lídři si všímají toho, jestli umíte dotáhnout práci do konce. Chyba je posílat životopis bez odkazů nebo s odkazy na nefunkční stránky.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Při psaní testů se vyvarujte častých chyb. První je testování více věcí v jedné funkci – pokud test selže, nevíte přesně, která část je rozbitá. Rozdělte test na menší celky. Druhou častou chybou je spoléhání se na pořadí testů nebo na sdílený stav mezi testy. Testy by měly být izolované, aby je bylo možné spouštět v libovolném pořadí. Třetí chybou je ignorování výjimek – pokud funkce očekává vyhození výjimky, použijte pytest.raises a ověřte, že k tomu skutečně dojde. Bez toho test neodhalí chybu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Na závěr si osvojte práci s příkazy příkazové řádky. Při spuštění pytest -v získáte podrobnější výstup o každém testu, pytest -k umožní spustit pouze testy odpovídající zadanému výrazu a pytest --maxfail=1 zastaví běh po prvním selhání. Tyto nástroje vám ušetří čas při ladění. Testování není zbytečná práce – je to investice, která se vám vrátí v podobě stabilnějšího kódu a jistoty při změnách. Začněte s malými testy na jednoduchých funkcích a postupně přidávejte složitější scénáře.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Jak se vyhnout častým chybám při psaní skriptů Nejčastější chybou začátečníků je tvrdé zakódování cest k souborům. Pokud použijete absolutní cestu, skript bude fungovat pouze na vašem počítači. Místo toho použijte relativní cesty nebo proměnné, které umožní skript spustit kdekoli. Druhým problémem je ignorování výjimek – soubor nemusí existovat, síť může být nedostupná, vstup nemusí odpovídat očekávání. Vždy obalte rizikové operace do bloku `try/except` a na chyby reagujte srozumitelnou hláškou.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Příprava na pohovor: co se skutečně ptají Na pohovoru se vás nebudou ptát na definice z učebnice, ale na konkrétní situace. Typická otázka zní: „Popište, jak byste navrhli aplikaci pro správu úkolů.&amp;quot; Ukažte, že umíte přemýšlet v souvislostech – rozdělte problém na menší části, zmiňte databázi, API a uživatelské rozhraní. Když nevíte přesnou odpověď, řekněte, jak byste postupovali, abyste ji našli. Nikdy neříkejte „nevím&amp;quot; bez dalšího vysvětlení.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Při práci s externími službami, jako je stahování webových stránek, používejte knihovny `requests` a `BeautifulSoup`. Dejte si pozor na limity – mnoho webů omezuje počet požadavků, takže do skriptu vložte pauzy (např. `time.sleep()`) a respektujte soubor `robots.txt`. Automatizace by nikdy neměla narušovat fungování cizích serverů. Podobně u tabulek využijte `pandas`, ale pamatujte, že paměťová náročnost roste s velikostí dat – pro malé soubory stačí `csv` modul.&lt;/div&gt;</summary>
		<author><name>OrvilleDane8360</name></author>
	</entry>
</feed>