如何使用Django使用真实数据进行测试?

时间:2018-07-12 13:48:11

标签: python django unit-testing tdd functional-testing

这是我的情况:

我们有一个项目以错误的方式启动,未经测试。该项目使用Python 3.6 *和Django 2. *。无论如何,现在我们正在尝试对测试进行编码,为此,我们正在阅读“ 服从测试山羊”一书,以进行Django测试。

问题是我们处于封闭网络中,并且系统使用LDAP进行登录。将LDAP用户与我们的Workers数据库进行比较,如果该工人没有被解雇或空缺,他可以登录系统。对于此Worker数据库(HR),我们只能进行查询,而不能进行插入或更新,创建,删除等操作。在简历中,我们无权管理LDAP和HR Database,而只能进行查询。另一件事:我们无权(特权)在我们的SQLServer中创建多个数据库。他们为我们创建了一个TestDatabase。因此,在运行测试命令时,我总是需要放-keepdb

此外,如果设置中有多个数据库,则Django Tests将尝试创建两个数据库。正如我们在settings.py中的HR数据库(不受管理)和应用程序数据库(默认)一样,Django试图创建这两个数据库。但是HR数据库只是做查询!怎么做?我们无法创建工作人员记录,只能使用它们。

在简历中:我可以测试真实数据,从真实数据库而不是Django创建的临时数据库进行查询吗?你能帮我吗?有想法吗?

if 'test' in sys.argv:
    DATABASES = {
        'default': {
            'ENGINE': 'sql_server.pyodbc',
            'NAME': 'MarcoMob_TEST',
            'USER': 'MarcoMob_TESTuser',
            'PASSWORD': 'a_strong_password',
            'HOST': 'SOME_HOST',
            'PORT': '',
            'OPTIONS': {
                'driver': 'ODBC Driver 13 for SQL Server',
            },
            'TEST': {
                'NAME': 'MarcoMob_TEST',
            }
        },
        'rh': {
            'ENGINE': 'django.db.backends.oracle',
            'NAME': 'RH',
            'HOST': 'SOME_HOST_FOR_HR',
            'USER': 'some_user_for_hr',
            'PASSWORD': 'some_password',
            'PORT': 'port',
        }
    }
else:
    DATABASES = {
        'default': {
            'ENGINE': 'sql_server.pyodbc',
            'NAME': 'MPInventoryDES',
            'USER': 'MPInventorydesuser',
            'PASSWORD': 'a_strong_password',
            'HOST': 'SOME_HOST',
            'PORT': '',
            'OPTIONS': {
                'driver': 'ODBC Driver 13 for SQL Server',
            },
        },
        'rh': {
            'ENGINE': 'django.db.backends.oracle',
            'NAME': 'RH',
            'HOST': 'SOME_HOST_FOR_HR',
            'USER': 'some_user_for_hr',
            'PASSWORD': 'some_password',
            'PORT': 'port',
        }
    }

0 个答案:

没有答案