小编Ale*_*aev的帖子

如何在Yii或slug麻烦中使用beforeAction

Yii开发jedis!

我正在研究一些旧的Yii项目,必须向他们添加一些功能.Yii是非常合乎逻辑的框架,但它有一些我无法理解的东西.也许我还没理解Yii-way.所以我将逐步描述我的问题.对于不耐烦的人 - 最后简要提问.

简介:我想在我的项目中添加人类可读的URL.现在网址如下:www.site.com/article/359
我希望它们看起来像这样:www.site.com/article/how-to-make-pretty-urls
非常重要:旧文章必须在旧版本上可用格式化URL和新的 - 关于新URL.

第1步:首先,我在config/main.php中更新了重写规则:

'<controller:\w+>/<id:\S+>' => '<controller>/view',
Run Code Online (Sandbox Code Playgroud)

我在文章表中添加了新的texturl列.因此,我们将在这里存储人类可读的新文章的部分内容.然后我用texturl更新了一篇文章进行测试.

第2步:在应用显示文章的actionViewArticleController所以我加入那里preproccessing ID参数验证码

if (is_numeric($id)) {
    // User try to get /article/359
    $model = $this->loadModel($id); // Article::model()->findByPk($id);
    if ($model->text_url !== null) {
        // If article with ID=359 have text url -> redirect to /article/text-url
        $this->redirect(array('view', 'id' => $model->text_url), true, 301);
    }
} else {
    // User try to get /article/text-url …
Run Code Online (Sandbox Code Playgroud)

php yii

6
推荐指数
1
解决办法
1万
查看次数

第一个测试用例运行后,Django DB记录消失

我正在基于Django REST Framework的项目上工作。因此,我需要为REST API编写一些测试用例。

我已经写了一些从标准DRF APITransactionTestCase继承的基本类(我们称之为BaseAPITestCase)。

在此类中,我定义了setUp方法,在其中创建了一些属于某些组的测试用户(我使用的是用FactoryBoy编写的UserFactory)。

当我运行测试时,第一个(第一个子类中的第一个测试用例方法)成功创建了具有指定组的用户,而其他用户则没有(指定了同一类中的其他测试用例方法)。

用户组目前不在数据库中。似乎在每次运行新的测试用例时,都会从数据库中删除现有记录。但是,它如何第一次起作用?

我已阅读Django测试文档,但无法弄清楚为什么会发生...有人可以解释吗?

主要问题是我应该怎么做才能使这些测试起作用

我应该创建一次用户并将其存储在对象变量中吗?

是否应该添加一些参数来保留用户组数据?

还是应该将用户组添加到灯具中?在这种情况下,如何正确创建此灯具?(所有相关模型,例如权限和内容类型)

用于说明的简化源代码:

from rest_framework.test import APITransactionTestCase    

class BaseAPITestCase(APITransactionTestCase):

    def setUp(self):
        self.user = UserFactory(
            username='login',
            password='pass',
            group_names=('admin', )
        )
        self.client = APIClient()
        self.client.force_login(self.user)

    def tearDown(self):
        self.client.logout()    

class CampaignListTest(BaseAPITestCase):

    def test_authorized_get(self):
        # successfully gets user groups from DB

    def test_authorized_post(self):
        # couldn't find any groups
Run Code Online (Sandbox Code Playgroud)

python django unit-testing django-rest-framework

1
推荐指数
1
解决办法
333
查看次数

标签 统计

django ×1

django-rest-framework ×1

php ×1

python ×1

unit-testing ×1

yii ×1