Архив автора: admin

Не меняется раскладка клавиатуры в RDP-сессии

Настройка терминального сервера и RDP сессиий

Не так давно один из пользователей терминального сервера Windows Server 2008 R2 меня серьезно озадачил. Не меняется (не переключается) раскладка клавиатуры в RDP сессии. При этом значок языка в панели задач меняется, но рядом с ним появляется дополнительный значок клавиатуры, через который надо вручную (мышкой) менять язык ввода. Читать

pytest продолжение

В первой части статей мы немного познакомились с основными базовыми возможностями pytest. Рассмотрели его особенностей и подходы.

В личных беседах и по почте поступил ряд вопросов и предложений, поэтому продолжению быть. В этой и последующих статьях погрузимся глубже в возможности pytest. Новый материал предлагаю выкладывать в виде поваренной книги — проблема, рецептура, ингредиенты, 5 минут готовки, наслаждение.

Последовательно выполнение тестовых сценариев


В тестировании часто бывают случаи, когда необходимо объединить несколько проверок в один большой тест и выполнить их последовательно. Причем бывает и так, что один сценарий зависит от результатов работы предыдущего (но такое лучше стараться избегать в автотестировании). 

В следующих статьях мы посмотрим как можно избежать этой ситуации пользуясь стандартными средствами пайтеста.

Например, тестируемая программа при первом запуске накатывает схему базы (sqlite чтобы не морочиться) и заполняет её некоторой служебной информацией. Допустим перед нами стоит задача «дешево» протестировать этот модуль. Сходу задачу модно разбить на 2 подзадачи — проверка создания файла базы, затем проверка схемы и в конце проверка данных.

Самый простой вариант — нумерация в названии тестов

# conftest.py
import os
import pytest
import sqlite3


def pytest_configure(config):

    config.DB_PATH = «db.sqlite»


@pytest.fixture(scope=»module»)
def creator(request):
    DB_PATH = request.config.DB_PATH
    con = sqlite3.connect(DB_PATH)
    cur = con.cursor()
    cur.executescript(«»»
        create table person(
            firstname,
            lastname,
            age
        );

        create table book(
            title,
            author,
            published
        );

        insert into book(title, author, published)
        values (
            'Dirk Gently''s Holistic Detective Agency',
            'Douglas Adams',
            1987
        );
        «»»)
    con.commit()
    con.close()
    return DB_PATH


@pytest.fixture
def cursor(request):
    class cursor:

        def __init__(self, dbpath):
            self.dbpath = dbpath
            self.conn = sqlite3.connect(self.dbpath)

        def table_exists(self, table):
            cursor = self.conn.cursor()
            cursor.execute(
                «SELECT name FROM sqlite_master WHERE type = «table»»)
            tables = cursor.fetchall()
            for each in tables:
                if table in each:
                    return True
            return False

        def getrows(self, table):
            cursor = self.conn.cursor()
            cursor.execute(«SELECT * FROM %s;» % (table))
            return cursor.fetchall()

    return cursor(request.config.DB_PATH)

# test.py
def test_1_db_exists(creator):
    assert os.path.exists(creator)


@pytest.mark.parametrize(«table», [«person», «book»])
def test_2_check_scheme(table, creator, cursor):
    result = cursor.table_exists(table)
    assert result


@pytest.mark.parametrize(«table», [«book»])
def test_3_check_rows(table, creator, cursor):
    assert cursor.getrows(table)


Спасибо документации питона за готовые примеры.

У такого подхода есть ряд недостатков.
1. В названии теста появляется нумерация — это лишняя мета информация. (Это может сказаться на тестовом отчете или билд логе CI сервера)
2. Название теста усложняется
3. Вставка нового элемента в середину приведет к смене нумерации всех последующих тестов

Вариант посложнее — маркеры


Свои маркеры мы реализовывать не будем, а используем готовый плагин pytest-ordering. В принципе вся реализация такого плагина составит не больше 100 строчек кода.

# test.py
@pytest.mark.order1
def test_db_exists(creator):
    assert os.path.exists(creator)


@pytest.mark.order2
@pytest.mark.parametrize(«table», [«person», «book»])
def test_check_scheme(table, creator, cursor):
    result = cursor.table_exists(table)
    assert result


@pytest.mark.order3
@pytest.mark.parametrize(«table», [«book»])
def test_check_rows(table, creator, cursor):
    assert cursor.getrows(table)


Наши тестовые функции преобразились, стали более понимаемы для чтения.
Из коробки плагин содержит создание цепочек выполнения, более понятные маркеры (pytest.mark.run('first'), pytest.mark.run('second')) и прочее. Более подробно в микро доку плагина.

Ссылки
[1] https://docs.python.org/2/library/sqlite3.html
[2] http://pytest-ordering.readthedocs.org/en/develop/

Автор: Евгений Курочкин

Креветка амано

Креветка амано

Пресноводная креветка Амано — одна из самых популярных видов аквариумных креветок. Известна под различными названиями — Caridina japonica, Amano Shrimp, AES (Algae Eating Shrimp), Caridina multidentata. Популярность данный вид креветок завоевал благодаря способности поедать нитчатые водоросли, изрядно облегчая работу аквариумиста по очистке аквариума.

Амано – достаточно крупные креветки, размеры взрослой самки достигают 5-6 см, а изредка и 7 см. Самцы несколько мельче – их максимальный размер – 4 см. Отличить самку от самца креветки Амано довольно легко, этому способствует не только размер, но и рисунок на теле. У самцов вдоль туловища наблюдаются черные точки, в то время как у самки точки перемежаются пунктирными линиями.

Как скрыть свой IP адрес в Интернете

Необходимость скрыть свой IP адрес в Интернете может возникать в различных ситуациях. Например, если вас заблокировали на каком-то сайте по IP адресу или вы хотите обеспечить себе большую анонимность. В этом материале мы рассмотрим несколько простых способов, как бесплатно скрыть свой реальный IP адрес в Интернете при посещении веб-сайтов. Читать

Детское меню: Овсянка с яблоками Термомикс от @Караповой Ольги

Ингредиенты:
  • 30 г овсянки «Геркулес»
  • 200 г молока
  • ½ яблока
  • масло (по желанию)
  • фруктоза (по желанию)

Cпособ приготовления:

1.Яблоко вымыть и почистить, порезать мелко или измельчить в чаше до пюре на ск.5;

2.Добавить в чашу овсянку, молоко и яблоко, готовить: 10 мин/90°/ск.2;

3.Добавить по желанию фруктозу и масло;

4.Взбить кашу: 3 сек/ск.7;

5.Проверить температуру и подавать;

6.Приятного аппетита!

PS Если Вы уже попробовали это блюдо или сначала хотите спросить совета — пишите в комментариях, мы будем очень рады! Нажмите на кнопочки социальных сетей — поделитесь с друзьями!​​


THERMOMIXMANIA.RU

Зацепило и поволокло

На меня напали салфетки, и хотя я думала, что свяжу одну маленькую, это было как с одной маленькой рюмочкой коньяку — потом и не вспомнишь, сколько их было, и даже мысль «зачем я напился» тоже уже утопнет 🙂 я пью редко и немного, если вы за меня беспокоились, но ассоциация кажется подходящей. 

Наверное этой крошечной салфеточки — 20см в растянутом виде, — мне было бы достаточно. Она как раз то, чего мне не хватало, маленькая и пятнами чая на ней не видны, как раз положить на стеклянный столик под чашку. И для конфетки место будет, и крючок можно положить и тоже не звякнуть. Но я начала не с нее, и возможно в этом была моя ошибка…

Великолепная Splendid от Патриции Кристоферсен связалась на одном дыхании и совершенно меня покорила! Эти объемные элементы, эта плотная структура, эти законченные очертания! Короче, хоть мне и не нужна бледно-розовая салфетка (пятна от чая видны), я не прекращаю на нее любоваться :-))) и не прекращаю вязать салфетки. Диаметр этой прелести 30см, связана из Виолета. 

Еще две малявочки из одного моточка Ириса. Я их накрахмалила, а то при своей дырявой структуре (не Патриция, да) и мягком ирисе они совершенно не держали форму. После легкого крахмала с формой стало нормально, но теперь они прилипают к чашке! Как я уже писала в Инстаграм, крахмалить сервировочные салфетки я больше не буду. Или надо крахмал только холодной водой разводить, чтобы не заваривался?

 

А это странно сфотканный процесс — опять салфетка! Теперь серьезная, размером наверное будет к 40см, по имени Рэчел. Я думала, она тоже от Патриции, но оказалось что автор Мери Вейтс. И мне сразу стало не нравиться, что она какая-то слишком плотная и украшают ее только «ракушки» с бусинами, остальное так себе 🙂 интересно, если бы автором была Патриция, я бы так же бухтела?  Посмотрим, что будет после ВТО, это всегда интересно!
Забавно с этими увлечениями. Сначала меня понесло на детские платья и я связала … Ну не совсем три… Но уж два с половиной точно! И планирую довязать третье, которое половина. И показать планирую 🙂 сначала наверное в инстаграмме, я теперь там и тут параллельно. Теперь вот в процессе поиска ажуров для платья я наткнулась и на салфетки и тоже не могу успокоиться, пока не сделаю несколько штук. А себе-то платье так и не связалось, и даже в голове полностью не отложилось! Придет лето и что я делать буду?? Ох, хотелось бы сказать — купаться и загорать, но что-то мне сомнительно. В крайнем случае куплю себе еще одно летнее платье, если будут деньги, и не буду об этом париться 🙂
Желаю нам всем приятного будущего лета!
 

Автор: Мария
Дата публикации: 2016-02-17T15:07:00.001+03:00