FabricのDjango Integrationが地味に便利そう

Fabricの0.9.2から、 Django Integration という機能があるようです。

これを使うと、FabricからDjangoのコードを呼ぶことができます。

先日紹介した factory_boy と組み合わせると:

    # -*- coding: utf-8 -*-
    from fabric.api import task
    from fabric.contrib import django

    # Djangoのコードのimportの前にこれを書く
    django.project('fabric_django')
    from example.factories import BookFactory


    @task()
    def generate_books():
        for i in range(10):
            BookFactory()

これでWeb上の動作確認をするためのデータを生成することもできます。

今まで、私はこういったことをやるために、Djangoのコマンドを自作していたのですが、こちらの方が簡単に書けそうでいいですね。

factory_boyで楽々テストデータ生成

Python Advent Calendar 2013 の14日目です。

今日は、テストコードを書くときに便利なモジュール factory_boy を紹介します。

なお、この記事のサンプルコードは以下の環境で動作確認しています。

  • Python 3.3.3(2.7でも動くように書いています)
  • factory_boy 2.2.1
  • SQLAlchemy 0.8.4
  • SQLite3
[続きを読む]