 Děkujeme, že jsme tady. To je velice důvodné, že jsme tady všechno testovámi. A je to, co jsme tady. Kvělitějící. Já jsem Jan Sčátka a já jsem přešel jako prínciplová kvělitějská vyskáváma vyskávámi vyskávámi vyskávámi v redhatu. a to jest Frankyšek Lachman však však však tím zvukování. Prámo, děláme se. Počkáváme z tím zvukování. Prostě vypadáme, co máme tím zvukování, až vypadáme to až pro a pros, a to pokud je mělo složení, že si to těchto vědělejí, jak se to vytvědilo výslednou. Protože motivíváme, jak se to znovu přijde. To je znovu, když jen musíme dolečit ogrom, který se výstvoře je nejlepší 1 Python API na mnohem výstvořené výstvoře. Jak na GitHub, GitHub a Pezure. Můžete mnit to znovu na GitHub. A jsme musíme testovat všechny kouků, které jsme dělává všechny kouků a všechny kouků jsou autentikovat. Takže testovat také kouků je velmi hodnější a musíme autentikovat tokání a dělává všechny kouků a všechny všechny kouků. Také všechny kouků je velmi hodnější a musíme autentikovat tokání a dělává všechny kouků a všechny kouků. Také všechny jsme dělává všechny kouků, které jsme dělává všechny kouků, které jsme dělává všechny kouků a všechny kouků. Také všechny kouků je velmi hodnější a musíme autentikovat tokání a dělává všechny kouků a všechny kouků. Také všechny jsme dělává všechny kouků, které jsme dělává všechny kouků a všechny všechny kouků. Aby se opravdu příšel, které jsme dělává všechny kouků a všechny kouků. Když se všechny všechny všechny kouků, které jsme dělává všechny kouků a všechny kouků. Také všechny jsme dělává všechny kouků a které jsme dělává všechny kouků. Také všechny jsme dělává všechny kouků, které jsme dělává všechny kouků a všechny kouků. Také všechny jsme dělává všechny kouků. Víte, že jsme všechny všechny kouků a které jsme dělává všechny kouků a všechny kouků a všechny kouků. Také všechny jsme dělává všechny kouků. Takže zvukovatelnost. Je to všechno opravdu. Honza může zvukovat z Koteča, takže je zvukovat, takže můžete přijít testy z hodního spotu nejde na internetu. Je to zvukovat, protože je hodně hodně hodně hodně. Pokud už tebe testé, to co osíkladnáme. No to mi se vždy je nevíde, protože jsme to nezvukovat z hodního spotu nezvukovatelnost, protože je to z hodně hodně hodně hodně hodně, takže je to z hodně hodně hodně hodně nezvukovatelnost, když se tady přijedí, že se, když se to vytvořilo hodinou, než to všechno dělat, že na výstvenkou výstvenosti takto, že na výstvenkou výstvenosti než v zovědě. Ale byli to nástané výstvenosti, jaký je jenom, když jenom je uvědět, Když je koro nejlepší vlastně, nejlepší vlastně, nejlepší vlastně, nejlepší vlastně, nejlepší vlastně, nejlepší vlastně. Ale máte určitý sakky, které to vlastně se přijí na válské vlastně a to vlastně se přijít, radost themselves or methodic words are called there or it completely but it can change API or something similar, so it also does that you have regenerated that code or that we also have you have to generate more response files for each of these ways. To je těžký, že jsme dělává výstřední výstřední a výstřední výstřední. A zelo, když jste, tady je to, když jste, refaktorovat odpravdu kod. Přesně měli to, že jste musíš vytvědětat to, protože když se jedna funcjina návře, vás vyskává složené informace v tom velíkáfého vyskává. A jak to značíte výstře, to vyskává se, že bude největné, že zvolává se v té dělávé dělávé dělávé. A když můžete se závětné stávky, se zavíjte skvěláte stávky. Takže, třeba to je... Vždyť je to štět. To je dobré. Takže, protože jak... Česká zájtědě je velmi zvukovat. Jsi to velmi důvět, co je nejlepší kandidat, co musíš se úžit k tomu, kdo je zvukovat. For example, did anybody tried to understand how works request to module in Python? OK, one agreed. For example, in this request module every communication goes over request session send. Tato můžete mít tady, jak jsi s ním střeba. Protožní na sestou určitosti dělává post. Jak se to tady v pohodli tady dělává post, to to už je úplně předměřet. o větmého závodnu je nezávoda, jak se tím, kdo užyje, tím dáte jistě tady samozřejmě vzhledaní, které vždyžce. A takový soušist je více, když tam jim vůvůváho světku, které se na první quitě budeme stát. To je odstavl na něco vydětné občávosti. A nebo, kde je tady neskupně serializával, musíš vyvrát kámo o kámo uvědětního kámo, co je to za mou. Závodou se to udělám. Ano, pro který, na tom, nejde neskupně serializával. A second problem is from the application management. It may sometimes lead to sensitive information. For example, in a GitHub, when you are using application... Váždy se to zvukují, že o tom zvukování nejde přijímným, že je to zvukování, který nevědná, že to, co se zvukování, vždyží, že to zvukování, že to, co se zvukování, že to zvukování, že to zvukování, že to zvukování, že to zvukování, že to zvukování, nebo pasvort, tokens nebo něco, které je nejlepší, které je nejlepší. Máme tím, které je automatická, která se vzájí, které je nejlepší. Takže máme to jako part of precomit for the project. The second problem with storage files is that they could be big. For example, also with a good hub when you are storing, for example, to request information and there is, for example, lots of issues. It stores every command and every code change and something like that. So these files could be megabytes of data, but for our testing purpose it's not so big problem. And also it's a little bit mess your git because these files could contain timestamps and some one-times objects, for example, for a good hub. So it's also good to remove these timestamps and similar objects. It's also possible via our command line tool. And now the funny part, examples. First one, that example is not a real-life example. It's just an example of how it works internally. Here there is that object storage. There are some funny stuff what we would like to store and there is how it works internally that it stores via these keys, these values. There are also metadata, but it could be empty. And these lines just stores these metadata to the file, to that file. And now you can see that I am now here removing that object storage and now I am restoring it back from that file. And now you can see that output. It is what the file contains. And now you can see that caty storm and mouse is Jerry. And second one is Paapi. Do you know Paapi? Fairytale for children? No, OK, let's go. OK, that's a hammer. OK, that's a second. It's more useful, but also please do not use it directly like that. There is, or it is main purpose how to use a requer. Via these decorators. You just use this decorator with function you would like to use to store some values. So you just decorate that and almost that's all. Then you just say please use this file. And there is automation that in case that file does not exist, it's set to a write mode and it will write these files. And in case that files exist, it will read the response from the files. And there is dumping to the file if it is in write mode. And you can see that first round shows also the word contains in a file and there is the output. And second round shows that there is nothing. And the reason why there is nothing, that there is so clever that after it reads that value, it's also removed that value. So in case you will, it also check that in case code change and would like to read another value, it's not possible. Because there is not stored next response. So it also checks that your code did not do more than it should. And there is example with the files. Our code is not just focused to record requested module or some generic stuff what you are creating via Python. But also possible, we found that we need that we would like to store also content of a directory or file. Because we tried to mock Python GitHub module, what works via support says, we work it. And into this project that it's able to store the files or content directory. It stores to the archive what is part of this storage file. That is possible to use more modes. First is that it tries to guess which attribute is file or directory. It checks that after that function ends. It tries to check that there in this attribute is something what seems like a file path. And it just uses this decorator. And now you can see that also in the first round, there is a temporary voice query. And inside that is a query file. In the second round, you can see that there is not called this input. But it's a completely or just replaced by that there is created that new file in this directory. We have enough time because we are last present in here, so we can continue. OK, now there is the most important or how to say, that there is an example how a request module is mocked or decorated by this decorator. And it's able to work that in the first round you have to put there your GitHub token. And you will show your repositories, and in the second one your token is important and it just works as you expect without any token. And now we have a nice patent import system operator that did this syntax. And it's same as a previous example, but it's a little bit, how to say, more structure because, or you will see in a real life example, and it is that one. So now instead of this, you can see that the thing is just this one, this code. Very simple, and just in any, you will edit this by replacing and decorating that functions you would like. And future, future is ours. So please, your PR are very welcome. We are using it for testing our code and for us it's a perfect project. But probably also you need it to simplify your integration in E2S tests. So, and we need your help here and, for example, if you are interesting in a fuzzing, we would like to add these to our projects, but we have no time to do that. So please add your breakfast. Also maybe you would like to ask if there exist another similar projects. Yes, there exists. We found it later, but we found it. But these projects are focused just to recording requests and HTTP communication. But our project is very generic, is able to store anything, what you want. So conclusion at the end, simple, secure, stable and super for you. Thank you very much.