Удалить все контейнеры и образы в Docker
Удалить все контейнеры и образы в Docker
Четыре команды для быстрого удаления всех образов и контейнеров на докер машине:
docker stop $(docker ps -a -q) docker rm $(docker ps -a -q) docker rmi $(docker images -q) docker system prune -a
Leave a Comment
Assert raise Exception в python юнит тестах
Assert raise Exception в python юнит тестах
Продолжаем про юниты тесты в питоне.
Удобная конструкция для проверки на вызов исключения в тесте:
def test_something_with_exception(self):
self.assertRaises(ValueError, self.client.send_something_method, param='one_param')
Тем самым мы тестируем метод send_something_method инциализрованного ранее объекта сlient с аргументами метода param и ожидаем что он выбросит исключение.
Leave a Comment
Mock для Context manager в Python
Mock для Context manager в Python
Встретился участок кода с контекстным менеджером. Потербовалось написать для этого юнит тест.
Для справки, контекстным менеджером в питоне называется конструкция вида:
with self.statsd_client.timer('metric'):
pass
Для того чтобы сделать мок метода и не ловить ошибки
AtributeError __exit__
мы должны правильно описать мок:
timer = Mock() timer.__enter__ = Mock(return_value=(Mock(), None)) timer.__exit__ = Mock(return_value=None) self.statsd_client = Mock() self.statsd_client.timer.return_value = timer
Дружище, спасибо большое. Долго не мог сделать мок на функцию с контекстным менеджером, а тут все понятно описано.
Read more
Litecoind сервер — установка и запуск демона лайтов
29.07.2017
Litecoind сервер — установка и запуск демона лайтов
Sassoft 29.07.2017 0 Comments
Без рубрики
litecoin, litecoind, ltc
Аналогично серверу bitcoind можно легко установить и запустить на Ubuntu (пример будет на ubuntu) litecoin сервер:
Bitbucket pipelines + php unit tests
25.05.2017
Bitbucket pipelines + php unit tests
Sassoft 25.05.2017 0 Comments
Без рубрики
bitbucket-pipelines, CI, phpunit, pipeline, unit test
Для сборки билда теперь можно использовать встроенный CI от Bitbucket. Для этого достаточно подключить Pipelines в настройках репозитория и создать примерно такой yml файл:
image: [ваш docker image] pipelines: default: - step: script: - composer global require "fxp/composer-asset-plugin:^1.2.0" - composer install - php yii migrate --interactive=0 - mysql -h 127.0.0.1 -u user --password=password db < config/dev.sql - php -S 127.0.0.1:5000 -t web >/dev/null 2>&1 & - cd tests && ../vendor/bin/codecept run services: - mysql definitions: services: mysql: image: mysql environment: MYSQL_DATABASE: 'db' MYSQL_RANDOM_ROOT_PASSWORD: 'yes' MYSQL_USER: 'user' MYSQL_PASSWORD: 'password'При помощи данного pipeline вы можете прогонять как просто unit так и интеграционные тесты с использованием базы данных. Для популяции базы данных сначала накатываются миграции проекта, а затем и дамп sql.
Read more
Bitcoin REST API сервис
21.04.2017
Bitcoin REST API сервис
Sassoft 21.04.2017 0 Comments
Без рубрики
bitcoin, bitcoind, cloud wallet
Разработан специальный rest API сервис на Silex для работы с bitcoind сервером.
При помощи данного модуля вы сможете быстро проводить операции по генерации биткойн адреса для заданного пользователя, проведении новой операции, проверки входящих транзакций по адресам пользователя. Модуль предоставляет из себя готовый облачный bitcoin кошелек, имеет функции регистрации и авторизации новых пользователей, вывод баланса пользователя.
Read more
Установка bitcoind сервера
12.02.2017
Установка bitcoind сервера
Sassoft 12.02.2017 0 Comments
Без рубрики
bitcoin, bitcoind
Ниже приведены шаги как можно достаточно быстро установить bitcoind кошелек на Ubuntu сервер.
Для работы потребуется установка bitcoind пакета + python 2.7 на вашей машине.
Шаг 1. Установка bitcoind:
Шаг 2. Настройка bitcoin.conf:
Read more
Bitcoin Coinbase API v2 новая версия
08.01.2017
Bitcoin Coinbase API v2 новая версия
Sassoft 08.01.2017 0 Comments
Без рубрики
API, btc, coinbase, скрипт, скрипты
Обновлен класс работы с Bitcoin через сервис Coinbase.
В новой версии обновлены все необходимые методы для работы с платежным сервисом Coinbase:
class Coinbase implements PaymentInterface { private $config = []; private $code = ""; private $client = ""; private $account; public $error; public $orderId; public $amount; public function printForm($params = []); public function validate($params = []); public function send($params = []); public function createAddress(); public function getTransaction($tranId); }Данный класс упрощает работу API Coinbase: https://github.com/coinbase/coinbase-php
Read more
Конфигурация nginx+ssl+php-fpm
11.12.2016
Конфигурация nginx+ssl+php-fpm
Sassoft 11.12.2016 0 Comments
Без рубрики
nginx, php-fpm, SSL
Минимальная конфигурация nginx для работы с https в связке php-fpm:
server { listen 80; listen 443 default_server ssl; server_name {{ server_name }}; root /var/www/html/current; access_log /var/log/nginx/{{ server_name }}_access.log; error_log /var/log/nginx/{{ server_name }}_error.log; ssl_certificate /path_to_cert/{{ server_name }}.cert; ssl_certificate_key /path_to_cert/{{ server_name }}.cert; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?q=$uri&$args; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } }Read more
Mock в PHPUnit + Stabs
05.11.2016
Mock в PHPUnit + Stabs
Sassoft 05.11.2016 0 Comments
Без рубрики
mock, php, phpunit, stub, unit tests
Простой и наглядный пример использования моков и стабов для PHPUnit:
$mock = $this->getMock('Yandex', array('send')); $mock->expects($this->once())->method('send')->will($this->returnValue('success'));Результаты поиска