-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Loading status checks…
add pipeline tests
1 parent
46d1e09
commit ff61d4a
Showing
15 changed files
with
264 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
<p><em>Jsi absolvent VŠ a chceš nastartovat svoji kariéru v testingu? Láká tě práce v pohodovém týmu?</em></p><p><em>Chceš se posouvat vpřed a rozvíjet se dál? Pokud ano, jsi na správném místě. </em></p><p><em>Do týmu potřebujeme juniorního člověka, který má alespoň půlroční zkušenost s testováním a psaní automatických testů mu není cizí. </em></p><p><strong>Co u nás budeš dělat:</strong></p><ul><li><span style="color: inherit;">podílet se na automatizaci testování,</span></li><li><span style="color: inherit;">vyhodnocovat testů,</span></li><li><span style="color: inherit;">spolupracovat s projektovým manažerem a vývojáři.</span></li></ul><p><strong>A k tomu potřebujeme:</strong></p><ul><li><span style="color: inherit;">prokazatelné zkušenosti s testováním (min. 1/2 roku),</span></li><li><span style="color: inherit;">základní znalost SoapUI (editace a posílání requestů),</span></li><li><span style="color: inherit;">základní znalost DB (práce se selekcty),</span></li><li><span style="color: inherit;">praktickou zkušenost s psaním automatických testů,</span></li><li><span style="color: inherit;">základní zkušenost s vývojem v Java - výhodou,</span></li><li><span style="color: inherit;">odpovídající úrovni junior/medior/senior,</span></li><li><span style="color: inherit;">český a anglický jazyk na komunikativní úrovni,</span></li><li><span style="color: inherit;">zodpovědný přístup a kombinace samostatnosti a týmovosti.</span></li></ul><p><strong>Nabízíme:</strong></p><ul><li><span style="color: inherit;">příležitost pro rozvoj,</span></li><li><span style="color: inherit;">pohodový pracovní tým,</span></li><li><span style="color: inherit;">Home office - po domluvě,</span></li><li><span style="color: inherit;">týden dovolené navíc, stravenky, benefitní karta, plně hrazená multisportka, mobilní tarif, Sick days, narozeninový den,</span></li><li><span style="color: inherit;">společné večeře a další TB akce.</span></li></ul><p><em>Oslovili jsme tě? Tak na nic nečekej a pošli nám CV či LinkedIn profil.</em></p><p><br></p> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
<div class="description__text description__text--rich"><strong>JAVA DEVELOPER - PRAHA (HPP)<br><br></strong><strong> Souhrn</strong> V dob? nejistoty a zm?n je d?ležité pracovat pro stabilní firmu, kterou jen tak n?co nepohne a p?esn? to vám mohu nabídnout. Firma s kterou pracuji je gigant v oblasti financí a bankovnictví s HQ v Londýn?. A?koli p?vod pramení ve Velké Británii, práv? Praha je domovem jednoho z nejvýznamn?jších vývojových center, které se nachází na Praze 4.<br><br>Práce v této spole?nosti vás vždy posune o krok dál - a? už osobn? tak profesionáln?. Projekty jsou mezinárodního rázu a budete tak mít možnost pracovat také s kolegy z UK a USA. Na projektech budete mít možnost využít vaše dosavadní schopnosti a znalosti, ale zárove? vás budou podporovat v osvojování nových technologií, s kterými jste t?eba ješt? nepracovali. Každý projekt vám p?inese n?co nového. Krom? u?ení se na projektech m?žete také využít r?zné platformy rozši?ovat své znalosti skrz r?zné kurzy: soft skills, IT, finance, jazykové. V tuto chvíli máme pozice pro Java vývojá?e od junior? až po vedoucí týmu. <strong> Základní dovednosti<br></strong><li> Alespo? minimální komer?ní zkušenosti s Javou, idáln? Java SE 8 (dle seniority)</li> <li> Spring, Spring boot, hibernate</li> <li> Znalost návrhových vzor?, základy OOP, multithreading</li> <li> Profesionální úrove? Angli?tiny</li> <li> P?edchozí zkušenost s vedením týmu (na pozici vedoucí týmu)<br></li><strong> S ?ím m?žete po?ítat<br></strong><li> Projekty založené na nových technologiích</li> <li> Kurzy (jazykové, IT, finance, soft skills)</li> <li> Pružná pracovní doba (pevné hodiny mezi 9.30 a 16.00)</li> <li> Práce v mezinárodní, ekonomicky stabilní firm?</li> <li> Rozsáhlé možnosti profesního postupu</li> <li> 60 dní zdravotního volna za rok</li> <li> Další standardní benefity (p?ísp?vek na penzi, medicover, 25 dní dovolené etc.)<br></li><strong> Kontaktní osoba: Zuzana Zednikova (+420 228 883 020/ Click here to contact this recruiter ).<br><br></strong><strong> Contact Name:</strong> Zuzana Zednikova<br><strong> Reference:</strong> TJ/3086/17042020ZZ01_1587122036<br><strong> Job ID:</strong> 2819766</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
<div class="description__text description__text--rich"><strong>Souhrn</strong> V dob? nejistoty a zm?n je d?ležité pracovat pro stabilní firmu, kterou jen tak n?co nepohne a p?esn? to vám mohu nabídnout. Firma s kterou pracuji je gigant v oblasti financí a bankovnictví s HQ v Londýn?. A?koli p?vod pramení ve Velké Británii, práv? Praha je domovem jednoho z nejvýznamn?jších vývojových center, které se nachází na Praze 4.<br><br>Práce v této spole?nosti vás vždy posune o krok dál - a? už osobn? tak profesionáln?. Projekty jsou mezinárodního rázu a budete tak mít možnost pracovat také s kolegy z UK a USA. Na projektech budete mít možnost využít vaše dosavadní schopnosti a znalosti, ale zárove? vás budou podporovat v osvojování nových technologií, s kterými jste t?eba ješt? nepracovali. Každý projekt vám p?inese n?co nového. Krom? u?ení se na projektech m?žete také využít r?zné platformy rozši?ovat své znalosti skrz r?zné kurzy: soft skills, IT, finance, jazykové. V tuto chvíli máme pozice pro Java vývojá?e od junior? až po vedoucí týmu. <strong> Základní dovednosti<br></strong><li> Alespo? minimální komer?ní zkušenosti s Javou, idáln? Java SE 8 (dle seniority)</li> <li> Spring, Spring boot, hibernate</li> <li> Znalost návrhových vzor?, základy OOP, multithreading</li> <li> Profesionální úrove? Angli?tiny</li> <li> P?edchozí zkušenost s vedením týmu (na pozici vedoucí týmu)<br></li><strong> S ?ím m?žete po?ítat<br></strong><li> Projekty založené na nových technologiích</li> <li> Kurzy (jazykové, IT, finance, soft skills)</li> <li> Pružná pracovní doba (pevné hodiny mezi 9.30 a 16.00)</li> <li> Práce v mezinárodní, ekonomicky stabilní firm?</li> <li> Rozsáhlé možnosti profesního postupu</li> <li> 60 dní zdravotního volna za rok</li> <li> Další standardní benefity (p?ísp?vek na penzi, medicover, 25 dní dovolené etc.)<br></li><strong> Kontaktní osoba: Zuzana Zednikova (+420 228 883 020/ Click here to contact this recruiter ).<br><br></strong><strong> Contact Name:</strong> Zuzana Zednikova<br><strong> Reference:</strong> TJ/3086/16042020ZZ02_1587028971<br><strong> Job ID:</strong> 2819455</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
<div class="description__text description__text--rich"><strong>JAVA DEVELOPER - PRAHA (HPP)<br><br></strong><strong> Souhrn</strong> V dob? nejistoty a zm?n je d?ležité pracovat pro stabilní firmu, kterou jen tak n?co nepohne a p?esn? to vám mohu nabídnout. Firma s kterou pracuji je gigant v oblasti financí a bankovnictví s HQ v Londýn?. A?koli p?vod pramení ve Velké Británii, práv? Praha je domovem jednoho z nejvýznamn?jších vývojových center, které se nachází na Praze 4.<br><br>Práce v této spole?nosti vás vždy posune o krok dál - a? už osobn? tak profesionáln?. Projekty jsou mezinárodního rázu a budete tak mít možnost pracovat také s kolegy z UK a USA. Na projektech budete mít možnost využít vaše dosavadní schopnosti a znalosti, ale zárove? vás budou podporovat v osvojování nových technologií, s kterými jste t?eba ješt? nepracovali. Každý projekt vám p?inese n?co nového. Krom? u?ení se na projektech m?žete také využít r?zné platformy rozši?ovat své znalosti skrz r?zné kurzy: soft skills, IT, finance, jazykové. V tuto chvíli máme pozice pro Java vývojá?e od junior? až po vedoucí týmu. <strong> Základní dovednosti<br></strong><li> Alespo? minimální komer?ní zkušenosti s Javou, idáln? Java SE 8 (dle seniority)</li> <li> Spring, Spring boot, hibernate</li> <li> Znalost návrhových vzor?, základy OOP, multithreading</li> <li> Profesionální úrove? Angli?tiny</li> <li> P?edchozí zkušenost s vedením týmu (na pozici vedoucí týmu)<br></li><strong> S ?ím m?žete po?ítat<br></strong><li> Projekty založené na nových technologiích</li> <li> Kurzy (jazykové, IT, finance, soft skills)</li> <li> Pružná pracovní doba (pevné hodiny mezi 9.30 a 16.00)</li> <li> Práce v mezinárodní, ekonomicky stabilní firm?</li> <li> Rozsáhlé možnosti profesního postupu</li> <li> 60 dní zdravotního volna za rok</li> <li> Další standardní benefity (p?ísp?vek na penzi, medicover, 25 dní dovolené etc.)<br></li><strong> Kontaktní osoba: Zuzana Zednikova (+420 228 883 020/ Click here to contact this recruiter ).<br><br></strong><strong> Contact Name:</strong> Zuzana Zednikova<br><strong> Reference:</strong> TJ/3086/24042020zz07_1587720144<br><strong> Job ID:</strong> 2821530</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
from pathlib import Path | ||
|
||
import pytest | ||
from scrapy import Spider | ||
|
||
from juniorguru_plucker.items import Job | ||
from juniorguru_plucker.pipelines.broken_encoding_filter import ( | ||
BrokenEncoding, | ||
Pipeline, | ||
) | ||
|
||
|
||
fixtures_raising = [ | ||
pytest.param(path.read_text(), id=path.name) | ||
for path in (Path(__file__).parent).rglob("*.html") | ||
if path.name.startswith("raising") | ||
] | ||
assert len(fixtures_raising) > 0, "No fixtures found" | ||
|
||
|
||
@pytest.mark.parametrize("description_html", fixtures_raising) | ||
def test_broken_encoding_filter_raising( | ||
item: Job, | ||
spider: Spider, | ||
description_html: str, | ||
): | ||
item["description_html"] = description_html | ||
|
||
with pytest.raises(BrokenEncoding): | ||
Pipeline().process_item(item, spider) | ||
|
||
|
||
fixtures_passing = [ | ||
pytest.param(path.read_text(), id=path.name) | ||
for path in (Path(__file__).parent).rglob("*.html") | ||
if path.name.startswith("passing") | ||
] | ||
assert len(fixtures_passing) > 0, "No fixtures found" | ||
|
||
|
||
@pytest.mark.parametrize("description_html", fixtures_passing) | ||
def test_broken_encoding_filter_passing( | ||
item: Job, | ||
spider: Spider, | ||
description_html: str, | ||
): | ||
item["description_html"] = description_html | ||
|
||
Pipeline().process_item(item, spider) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
from datetime import date | ||
|
||
import pytest | ||
from scrapy import Spider | ||
|
||
from juniorguru_plucker.items import Job | ||
|
||
|
||
@pytest.fixture | ||
def item() -> Job: | ||
return Job( | ||
title="Junior Python Engineer", | ||
first_seen_on=date.today(), | ||
url="https://example.com/jobs/123", | ||
company_name="Mergado", | ||
employment_types=["full-time"], | ||
description_html="...", | ||
source="jobs-startupjobs", | ||
source_urls=[ | ||
"https://www.startupjobs.cz/nabidka/38100/python-backend-developer-brno" | ||
], | ||
) | ||
|
||
|
||
@pytest.fixture | ||
def spider() -> Spider: | ||
return Spider(name="sample") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
<header> | ||
<h1>Web developer</h1> | ||
<h2 id="kdo-jsme-a-koho-hledame">Kdo jsme a koho hledáme?</h2> | ||
<p>Baví nás e-commerce a proto jsme se před rokem pustili do tvorby aplikací pro <a href="https://www.shopify.com/">Shopify.com</a>. Provozujeme více aplikací, např. Candyrack, zaměřené na performance marketing a dnes je využívají stovky e-shopů z celého světa. Klademe důraz na UX, UI a support našich zákazníků. Jsme teprve na začátku budování týmu a hledáme posilu pro našeho programátora.</p> | ||
<h2 id="nase-technologie">Naše technologie</h2> | ||
<p>Aplikace jsou napsané v Djangu 2.2 (Python 3.7) a Reactu. Pro UI testy používáme <a href="https://www.cypress.io/">cypress.io</a> a v Pythonu unittest. Nechceme řešit operations, všechno tedy provozujeme na Heroku. Práci řešíme v Trellu, na GitHubu a na Slacku. Není důležité jestli něco z toho neumíš. Věříme v rychlé sdílení znalostí pomocí <a href="https://tuple.app/pair-programming-guide/the-case-for-pair-programming">párového programování</a>. Naše aplikace jsou velmi úzce svázané se Shopify pomocí jejich API, časem se ho tedy budeš muset naučit.</p> | ||
<h2 id="co-ocekavame">Co očekáváme?</h2> | ||
<p>Očekáváme alespoň základní znalost Pythonu, JavaScriptu, HTML a CSS - musíš mít chuť tvořit webové aplikace. And of course, you should be able to communicate in English.</p> | ||
<h2 id="co-nabizime">Co nabízíme?</h2> | ||
<p>Tvé finanční požadavky pro nás nejsou důležité, klíčový je tvůj přínos a jak mezi nás zapadneš. Klademe důraz na výsledky a rádi navíc oceníme iniciativu. Máme kancelář u Masarykova nádraží, ale jsme distribuovaný tým a naprostá většina diskuzí probíhá v Trellu. Pokud máš rád dobrou kávu jako my, naše druhá kancelář je za rohem, v EMA espresso baru :)</p> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
<section class="description"><div class="description__text description__text--rich">Pro našeho klienta, IT společnost se sídlem v Plzni * podílení se na vývoji aplikací<br><br><li> programování, analýza a návrhy individuálních řešení * součást mezinárodních realizačních týmů * možnost pracovních cest * atraktivní mzdové ohodnocení * skvělé příležitosti pro vlastní rozvoj * flexibilní pracovní doba</li><li> stravenky, nápoje na pracovišti a fruit days * kurzy anglického, německého a španělského jazyka * společné mimopracovní aktivity</li><li> dodatková dovolená + sick days * možnost využ</li></div><ul class="job-criteria__list"><li class="job-criteria__item"><h3 class="job-criteria__subheader">Seniority level</h3><span class="job-criteria__text job-criteria__text--criteria">Entry level</span></li><li class="job-criteria__item"><h3 class="job-criteria__subheader">Employment type</h3><span class="job-criteria__text job-criteria__text--criteria">Full-time</span></li><li class="job-criteria__item"><h3 class="job-criteria__subheader">Job function</h3><span class="job-criteria__text job-criteria__text--criteria">Engineering</span><span class="job-criteria__text job-criteria__text--criteria">Information Technology</span></li><li class="job-criteria__item"><h3 class="job-criteria__subheader">Industries</h3><span class="job-criteria__text job-criteria__text--criteria">Staffing and Recruiting</span><span class="job-criteria__text job-criteria__text--criteria">Retail</span><span class="job-criteria__text job-criteria__text--criteria">Financial Services</span></li></ul></section> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
<section class="description"><div class="description__text description__text--rich">Hledáš práci, ve které uplatníš svůj potenciál? Baví Tě front-endový vývoj v JavaScriptu? Chceš pracovat s moderními technologiemi a mít přátelský kolektiv?Pak hledáme právě Tebe!* 5 týdnů dovolené* Příspěvky ve formě Cafeterie* Jazykové a vzdělávací kurzy* Nové kanceláře* Nejmodernější technologie* Velmi příjemné pracovní prostředí* Možnost kariérního růstu* Stravenky* Příspěvky na pojištění* Místo výkonu práce: Olomouc*...</div><ul class="job-criteria__list"><li class="job-criteria__item"><h3 class="job-criteria__subheader">Seniority level</h3><span class="job-criteria__text job-criteria__text--criteria">Entry level</span></li><li class="job-criteria__item"><h3 class="job-criteria__subheader">Employment type</h3><span class="job-criteria__text job-criteria__text--criteria">Full-time</span></li><li class="job-criteria__item"><h3 class="job-criteria__subheader">Job function</h3><span class="job-criteria__text job-criteria__text--criteria">Sales</span><span class="job-criteria__text job-criteria__text--criteria">Management</span></li><li class="job-criteria__item"><h3 class="job-criteria__subheader">Industries</h3><span class="job-criteria__text job-criteria__text--criteria">Information Technology and Services</span><span class="job-criteria__text job-criteria__text--criteria">Staffing and Recruiting</span><span class="job-criteria__text job-criteria__text--criteria">Accounting</span></li></ul></section> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
<section class="mb32 fs-body2 fc-medium pr48"> | ||
<h2 class="fs-subheading mb16 fc-dark">Job description</h2> | ||
<div> | ||
<p><strong>UNSER HERZ SCHLÄGT FÜR BILDUNG! </strong></p> | ||
<p><strong>DEINS FÜR IT? Clean Code, Clean Architecture und Design Pattern sagen dir was? - Klasse, dann bist du bei uns genau richtig!</strong></p> | ||
<p><strong>Du</strong> teilst unsere Begeisterung, Menschen bei der Erweiterung ihrer beruflichen Kompetenzen und Integration in den Arbeitsmarkt zu unterstützen und bringst darüber hinaus ein hohes Maß an Einsatz- und Lernbereitschaft sowie Freude am Arbeiten im Team mit.</p> | ||
<ul> | ||
<li>Studium oder Ausbildung der Informatik oder eines verwandten Bereichs. <strong>Oder gleichwertige Kenntnisse, die im Bereich der privaten Programmierung erworben wurden.</strong></li> | ||
<li>Erfahrung mit PHP- bzw. Symfony-Programmierung</li> | ||
</ul> | ||
<p><strong>Dein neues Aktionsfeld</strong></p> | ||
<ul> | ||
<li>Flexible Arbeitszeiten</li> | ||
<li>Homeoffice, wenn du möchtest</li> | ||
<li>Aktiv mitgestalten, statt nur auszuführen.</li> | ||
<li>Nette Kollegen (echt jetzt)</li> | ||
<li>Sinnvolle Tätigkeit: Wir stärken Menschen durch Bildung. Das ist unser Geschäftsmodell und unser Ziel.</li> | ||
<li>Gute Verkehrsanbindung</li> | ||
<li>Moderner Arbeitsplatz in Berlin und/oder im Homeoffice, von wo aus du willst. <strong>Auch 100% Homeoffice ist möglich! </strong></li> | ||
</ul> </div> | ||
</section> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
<section class="description"><div class="description__text description__text--rich"><ul><li>tworzenie i rozwój aplikacji w oparciu o wymagania biznesowe przy wykorzystaniu najlepszych praktyk programowania,</li><li> projektowanie responsywnych i nowoczesnych aplikacji front-endowych,</li><li> opracowywanie i obsługa testów jednostkowych oprogramowania,</li><li> dzielenie się wiedzą, przeprowadzanie code review,</li><li> przygotowanie/aktualizacja technicznej dokumentacji poprojektowej.</li><li> wykształcenia wyższego (preferowane kierunki informatyczne lub pokrewne),</li><li> min. 3-letnie doświadczenie komercyjne w tworzeniu aplikacji webowych</li><li> Znajomość i doświadczenie w pracy z technologiami:</li><li> HTML5, CSS3, bardzo dobra znajomość JavaScript (ES6/ES7), TypeScript, Bootstrap, ReactJS (Saga, Redux), jQuery, TSlint/JSLint, Webpack, Gulp/Grunt, Node.js, NPM, Preprocesor SASS/LESS, wzorców projektowych OOP, Webserwisy REST, W3C</li><li> znajomości systemu kontroli wersji Git,</li><li> znajomość zagadnień z optymalizacji i wydajności aplikacji,</li><li> znajomości j. angielskiego na poziomie umożliwiającym swobodną pracę z dokumentacją techniczną.<br><br></li><strong><u>Mile Widziane<br><br></u></strong><li> doświadczenie w pracy z Jenkins/Jira Confluence,</li><li> znajomość narzędzi ciągłej integracji CI/CD,</li><li> doświadczenie w pracy w zespole Scrum,</li><li> znajomość techniki TDD.</li><li> umowa o pracę,</li><li> pracę w doświadczonym zespole, przy rozwoju jednej z największych platform integracyjnych w kraju,</li><li> atrakcyjny pakiet socjalno-motywacyjny, w tym prywatną opiekę zdrowotną i Pracowniczy Program Emerytalny,</li><li> konkurencyjne wynagrodzenie,</li><li> pakiet benefitów,</li><li> profesjonalny system szkoleń.</li></ul></div><ul class="job-criteria__list"><li class="job-criteria__item"><h3 class="job-criteria__subheader">Seniority level</h3><span class="job-criteria__text job-criteria__text--criteria">Entry level</span></li><li class="job-criteria__item"><h3 class="job-criteria__subheader">Employment type</h3><span class="job-criteria__text job-criteria__text--criteria">Full-time</span></li><li class="job-criteria__item"><h3 class="job-criteria__subheader">Job function</h3><span class="job-criteria__text job-criteria__text--criteria">Engineering</span><span class="job-criteria__text job-criteria__text--criteria">Information Technology</span></li></ul></section> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
from pathlib import Path | ||
|
||
import pytest | ||
from langdetect import DetectorFactory | ||
from scrapy import Spider | ||
|
||
from juniorguru_plucker.items import Job | ||
from juniorguru_plucker.pipelines.language_parser import Pipeline | ||
|
||
|
||
DetectorFactory.seed = 0 # prevent non-deterministic language detection | ||
|
||
|
||
fixtures = [ | ||
pytest.param(path.read_text(), path.stem.split("_")[0], id=path.name) | ||
for path in (Path(__file__).parent).rglob("*.html") | ||
] | ||
assert len(fixtures) > 0, "No fixtures found" | ||
|
||
|
||
@pytest.mark.parametrize("description_html, expected_lang", fixtures) | ||
def test_language_parser( | ||
item: Job, | ||
spider: Spider, | ||
description_html: str, | ||
expected_lang: str, | ||
): | ||
item["description_html"] = description_html | ||
item = Pipeline().process_item(item, spider) | ||
|
||
assert item["lang"] == expected_lang |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
import pytest | ||
from scrapy import Spider | ||
|
||
from juniorguru_plucker.items import Job | ||
from juniorguru_plucker.pipelines.language_filter import ( | ||
IrrelevantLanguage, | ||
Pipeline, | ||
) | ||
|
||
|
||
@pytest.mark.parametrize("lang", ["cs", "en"]) | ||
def test_language_filter(item: Job, spider: Spider, lang: str): | ||
item["lang"] = lang | ||
item = Pipeline().process_item(item, spider) | ||
|
||
assert item["lang"] == lang | ||
|
||
|
||
@pytest.mark.parametrize("lang", ["de", "fr", "pl"]) | ||
def test_language_filter_drops(item: Job, spider: Spider, lang: str): | ||
item["lang"] = lang | ||
|
||
with pytest.raises(IrrelevantLanguage, match=lang): | ||
Pipeline().process_item(item, spider) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
import pytest | ||
from scrapy import Field, Item, Spider | ||
|
||
from juniorguru_plucker.pipelines.required_fields_filter import ( | ||
MissingRequiredFields, | ||
Pipeline, | ||
) | ||
|
||
|
||
class Something(Item): | ||
prop1 = Field() | ||
prop2 = Field(required=True) | ||
prop3 = Field() | ||
prop4 = Field(required=True) | ||
|
||
|
||
def test_required_fields_filter(spider: Spider): | ||
item = Something(prop1="foo", prop2="moo", prop4="boo") | ||
Pipeline().process_item(item, spider) | ||
|
||
|
||
def test_required_fields_drops(spider: Spider): | ||
item = Something() | ||
|
||
with pytest.raises(MissingRequiredFields, match="prop2, prop4"): | ||
Pipeline().process_item(item, spider) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
import pytest | ||
from scrapy import Spider | ||
|
||
from juniorguru_plucker.items import Job | ||
from juniorguru_plucker.pipelines.short_description_filter import ( | ||
Pipeline, | ||
ShortDescription, | ||
) | ||
|
||
|
||
def test_short_description_filter(item: Job, spider: Spider): | ||
item["description_html"] = """ | ||
<div class="description__text description__text--rich">Požadavky<br> | ||
<br>Zkušenosti s programováním v Pythonu<br>Python 2x, Python 3x<br> | ||
PostgreSQL/SQL server<br><br>Preferujeme<br>Django framework<br> | ||
Vue.js<br>HTML5<br><br>Náplň práce<br><br>Do týmu "srdcařů" hledáme | ||
Python developery do OLOMOUCE<br><br>Možnost spolupráce jak HPP tak | ||
i DPP či freelance.<br><br>Jedná se o práci na dlouhodobých českých | ||
i zahraničních projektech, vývoj sw na zakázku. Bližší informace | ||
o našich projektech Vám rádi představíme osobně :-)<br><br>Nabízíme<br> | ||
<br><strong><u>Nadstandardní Benefity<br><br></u></strong>cvičení s | ||
fyzioterapeutem v pracovní době /abyste si protáhli záda od sezení | ||
u PC/<br>stravenky 100 Kč<br>každých 6 měsíců přehodnocení platu<br> | ||
příspěvek na nákup techniky<br>příspěvek na penzijní či jiné | ||
připojištění<br>firemní telefonní číslo i pro blízkou rodinu s výhodným | ||
tarifem<br>nadstandardní příplatky navíc za support na telefonu pro | ||
zákazníky<br>systém kafeteria<br>a v neposlední řadě výborný pohodový | ||
tým, férové jednání</div> | ||
""" | ||
|
||
assert len(item["description_html"]) > Pipeline.min_chars_count | ||
Pipeline().process_item(item, spider) | ||
|
||
|
||
def test_short_description_filter_drops(item: Job, spider: Spider): | ||
item["description_html"] = """ | ||
<div class="description__text description__text--rich"> | ||
Nabízíme možnost vybrat si z variace projektů, na kterých využijete | ||
nejmodernější technologie pro vývoj aplikací v oblasti zdravotnictví | ||
a státních institucí (zdravotní pojišťovny, nemocnice, státní a veřejná | ||
správa, finanční a kapitálové trhy). Pracovat můžete v distribuovaných | ||
týmech zkušených i méně zkušených programátorů pod vedením zběhlých | ||
ředitelů vývoje.* 5 týdnů dovolené* firemní notebook a telefon* | ||
vzdělávací kurzy (odborné i... | ||
</div> | ||
""" | ||
|
||
assert len(item["description_html"]) < Pipeline.min_chars_count | ||
with pytest.raises(ShortDescription): | ||
Pipeline().process_item(item, spider) | ||
|
||
|
||
def test_short_description_filter_drops_regardless_html(item: Job, spider: Spider): | ||
item["description_html"] = """ | ||
<div class="description__text description__text--rich"> | ||
<strong>Nabízíme možnost vybrat</strong> si z variace projektů, | ||
na kterých <a href="https://www.example.com/example?q=1">využijete</a> | ||
nejmodernější technologie pro vývoj aplikací v oblasti zdravotnictví | ||
a státních institucí (zdravotní pojišťovny, nemocnice, státní a veřejná | ||
správa, finanční a kapitálové trhy). Pracovat můžete v distribuovaných | ||
týmech zkušených i méně zkušených programátorů pod vedením zběhlých | ||
ředitelů vývoje.* 5 týdnů dovolené* firemní notebook a telefon* | ||
vzdělávací kurzy (odborné i... | ||
</div> | ||
""" | ||
|
||
assert len(item["description_html"]) > Pipeline.min_chars_count | ||
with pytest.raises(ShortDescription): | ||
Pipeline().process_item(item, spider) |