Today’s note is short. I successfully managed to transition on a custom example page to run tests against. This resulted in much faster execution, however tests are failing due to failure of finding ‘Ext’ object. Unfortunately, reason remains unknown. Possibly, I will be migrating to headless Chrome or Firefox, since PhantomJS’ maintainer stepped down a […]
Category: dajsiepoznac2017
Dive into Python’s asyncio, part 2
All examples were tested under Python 3.6. The only asyncio rule After reading part 1 you should already know, that a heart of asyncio is an event loop. There is exactly one rule – do not block the event loop! Never ever. Fortunately, it’s quite simple to avoid this. Use only co-operative libraries for blocking […]
Ext Js Pathfinder progress report #3
3rd progress report is under way. So far Ext Js Pathfinder can interact in a limited way with textfields and buttons. But what is it good for, if it lacks a handy set of assertions? Writing ‘classic’ assertions in testing websites usually amounts to few things: asserting site’s title is equal to some expected value […]
Dive into Python’s asyncio, part 1
Concurrency was not seriously taken into account in Python when it was designed. Until 3.4 version, there were two options: threading multiprocessing Although these two modules provided programmers with handy primitives and API, they both have considerable downsides. Due to GIL presence, threaded code in Python never actually run in parallel. So all attempts to […]
Ext Js Pathfinder progress report #2
It’s time for fill in some forms! Since we are already able to query for some Ext.form.field.Text components, then lets put text into it. I’ve been circling around mystic JavaScript methods of programmatically simulating key strokes by creating and dispatching KeyboardEvent. I spent a while experimenting, but I got no satisfactory result, so I decided […]
Collections in Python’s standard library: dict
Warning: this post’s contents is based on Python 3.6rc1 source code – most recent available one at the moment of writing. Dicts are omnipresent A lot of things in Python are dicts. Your programs use dictionaries extensively even if you do not explicitly instantiate them. There is a global registry of loaded modules, so they do […]
Python 3.6 new features – formatted string literals
On 23. December 2016 new minor version of Python was released – 3.6. It brings few enhancements and syntax features. In my opinion the most notable one is introduction of formatted string literals. word = ‘world’ print(f’Hello, {word}!’) # prints ‘Hello, world I always envied Ruby’s string interpolation because it is much cleaner and doesn’t […]
Ext Js Pathfinder progress report #1
tl;dr – Ext Js Pathfinder now can query elements using built-in ComponentQuery and emulate clicking buttons. Only Ext 4 is supported at the moment, though. What I’ve made I have put some work into the project. Main consideration was to choose convenient testing framework, that would actually help develop Ext Js Pathfinder. Finally I have […]
What is celery beat and how to use it?
Celery is a widely recognized distributed task queue for pythonic projects. Its sole purpose is to reduce load of web servers by delegating time-consuming tasks to separate processes. Our web servers should handle one request for no longer than a fraction of second, therefore running long tasks synchronously substantially reduces application’s throughput. So we are […]
Rationale behind Ext JS Pathfinder and its goals
Why testing Ext JS with Selenium and similar software is nearly impossible? As I explained in previous note, automatic testing any application is possible provided one is able to write appropriate client, that will interact with the app’s interface in the same manner as regular user does. So… If my application is accessed through browser, then […]