小编use*_*391的帖子

量角器 - 计算中继器中的元素并打印它

我正在尝试计算转发器中的元素并将其打印到控制台.

这是标记:

<div class="col-md-3 ng-scope" ng-repeat="app in userApps" >...< /div> 
Run Code Online (Sandbox Code Playgroud)

目前我正在计算和比较:

expect(element.all(by.repeater('app in userApps')).count()).toEqual(4);
Run Code Online (Sandbox Code Playgroud)

它有效,但我也希望能够打印它.

我试过这个:

var rows = element.all(by.repeater("app in userApps"));
var sum = rows.count(); 
console.log(sum.getText());
Run Code Online (Sandbox Code Playgroud)

但我得到了:

TypeError: Object [object Object] has no method 'getText'
Run Code Online (Sandbox Code Playgroud)

实际上有两个问题 - 我是以正确的方式做到的吗?2.如何将其打印到控制台?

testing end-to-end angularjs angularjs-ng-repeat protractor

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

python 单元测试断言使用部分调用

使用 python 3.5.3 我想断言模拟函数收到了特定的参数,但我不想检查所有收到的参数,只检查对测试重要的参数。

例如,不要这样做:

my_func_mock.assert_called_with('arg1','arg2','arg3')
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情:

my_func_mock.assert_called_with_partial(arg2='arg2')
Run Code Online (Sandbox Code Playgroud)

是否可以?

python unit-testing assertion

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

RuntimeWarning:DateTimeField 收到了 auto_now 的原始日期时间

我们正在使用 Django 1.10

我们收到了很多这样的警告:

RuntimeWarning: DateTimeField Item.updated_at received a naive datetime (2018-05-01 12:35:18.213471) while time zone support is active.
RuntimeWarning)
Run Code Online (Sandbox Code Playgroud)

我阅读了很多关于这些问题的答案,但在这种情况下,我们不会手动设置日期。该字段 (Item.updated_at) 设置为

auto_now=True
Run Code Online (Sandbox Code Playgroud)

有没有办法让“auto_now”不幼稚?

这是模型的一部分:

class BaseModel(models.Model):

    id = models.UUIDField(default=uuid.uuid4, editable=False, db_index=True, unique=True, primary_key=True)
    created_by = models.CharField(max_length=200)
    created_at = models.DateTimeField(db_index=True, auto_now_add=True)
    updated_by = models.CharField(max_length=200)
    updated_at = models.DateTimeField(db_index=True, auto_now=True)
Run Code Online (Sandbox Code Playgroud)

谢谢

编辑:这可能与我们在测试中使用的工厂有关吗?例如:

class ItemFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = Item

    title = "Fake item title"
    identifier = factory.Sequence(lambda n: n)
    status_id = Status.Open['id']
    due_date = None
    updated_by = "Fake updater"
    updated_at = …
Run Code Online (Sandbox Code Playgroud)

python django timezone datetime

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

量角器 - 将spec/suite名称作为参数发送

我可以使用spec或suite名称作为参数运行量角器测试吗?我目前正在运行它:

protractor myconf.js 
Run Code Online (Sandbox Code Playgroud)

谢谢.

javascript testing test-suite command-line-arguments protractor

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

Celery记录器配置

我正在使用Django 1.10,python 3.5和celery 4.1.0,我正在尝试将celery任务信息记录到文件中。所以我按照芹菜文档中的建议进行了尝试-

from celery.utils.log import get_task_logger

logger = get_task_logger(__name__)
Run Code Online (Sandbox Code Playgroud)

并尝试在任务内记录一条消息-

logger.info(message)
Run Code Online (Sandbox Code Playgroud)

我希望它可以登录到我的默认记录器。但事实并非如此。因此,我在设置中添加了一个名为“ celery.task”的专用记录器(据文档了解):

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
    'require_debug_false': {
        '()': 'django.utils.log.RequireDebugFalse',
    },
    'require_debug_true': {
        '()': 'django.utils.log.RequireDebugTrue',
    },
    'require_test_false': {
        '()': 'myapp.utils.classes.logging.RequireTestFalse',
    },
    'suppress_deprecated': {
        '()': 'myapp.utils.classes.logging.SuppressDeprecated'
    }
},
'handlers': {
    'console': {
        'level': 'INFO',
        'class': 'logging.StreamHandler',
        'formatter': 'json',
        'filters': ['suppress_deprecated']
    },
    'celery_file': {
        'level': 'INFO',
        'class': 'myapp.utils.classes.logging.SBRotatingFileHandler',
        'maxBytes': 1024 * 1024 * 200,  # 200 MB
        'backupCount': 10,
        'formatter': 'json',
        'filename': BASE_DIR + …
Run Code Online (Sandbox Code Playgroud)

python django logging celery

6
推荐指数
2
解决办法
6609
查看次数

Django - 覆盖模型保存()

在我们的项目中,我们使用软删除(模型上的 is_deleted 属性)。在创建新模型之前,我想首先检查它是否已经存在并删除,如果是 - 设置 is_deleted=False 并保存已经存在的模型。所以我决定覆盖模型的“保存”方法。(不是视图创建,因为它不仅应该适用于请求)问题是所有操作(创建、更新、删除)都调用了“save()”。有没有办法只能在创建时调用覆盖的方法?

class Model(BaseModel):
    title = models.CharField(max_length=200)
    identifier = models.CharField(max_length=15)

    def save(self, *args, **kwargs):
        try:                                               
            existing_model = Model.objects.active_and_deleted().get(                                                        identifier=self.identifier)

            if self.is_deleted is False:
                existing_model.is_deleted = False
                existing_model.title = self.title
                existing_model.created_at = self.created_at
                existing_model.updated_at = self.updated_at
                existing_model.created_by = self.created_by
                existing_model.deleted_at = None
                super(Model, existing_model).save(args, kwargs)
        except Model.DoesNotExist:
            # in case the Nodel wasn't already exist - continue
            pass
        super(Model, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

python django model

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

量角器 - 比较数字

在我的程序中,我正在计算两个数字,我想确保它们的减法等于1.

这是代码:

var firstCount=element.all(by.repeater('app in userApps')).count();
var secondCount=element.all(by.repeater('app in userApps')).count();
Run Code Online (Sandbox Code Playgroud)

到目前为止它很好 - 我得到的数字.接下来的问题是:

var sub=secondCount-firstCount;
expect(sub).toEqual(1);
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

Expected NaN to equal 1.
Run Code Online (Sandbox Code Playgroud)

任何的想法?

javascript subtraction end-to-end angularjs protractor

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

webdriver-manager更新错误:EACCES,权限被拒绝

我曾经成功运行过Protractor测试(在Mac上),我试图升级版本,所以我跑了

$npm install -g protractor
Run Code Online (Sandbox Code Playgroud)

看起来它似乎有效 - 跑步的时候

$protractor --version
Run Code Online (Sandbox Code Playgroud)

我明白了

Version 1.8.0
Run Code Online (Sandbox Code Playgroud)

但是现在,跑步的时候

$webdriver-manager start
Run Code Online (Sandbox Code Playgroud)

我明白了

 fs.js:642
  return binding.mkdir(pathModule._makeLong(path),
             ^
Error: EACCES, permission denied   '/usr/local/lib/node_modules/protractor/selenium'
at Object.fs.mkdirSync (fs.js:642:18)
at Object.<anonymous> (/usr/local/lib/node_modules/protractor/bin/webdriver-     manager:108:6)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

javascript node.js npm selenium-webdriver protractor

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

Django Celery apply_async 不起作用

我们使用的是 django 1.10,Celery 4.1.0

我正在尝试使用 apply_async。这是任务:

from celery import Celery
app = Celery('my_app', broker='redis://127.0.0.1:6379/2')


@app.task
def add(x, y):
    print(str(x+y))
    raise status.HTTP_500_INTERNAL_SERVER_ERROR
Run Code Online (Sandbox Code Playgroud)

当使用 'delay' 调用它时,它运行 'add' 函数但不重试:

add.delay(4, 4)
Run Code Online (Sandbox Code Playgroud)

我尝试使用 'apply_async' 和 'retry' 和 'retry_policy' 运行任务,但它似乎甚至没有运行任务:

add.apply_async((4, 4),
                        retry=True,
                        retry_policy={
                                      'max_retries': 3,
                                      'interval_start': 0,
                                      'interval_step': 0.2,
                                      'interval_max': 0.2,
                        } 
                )
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

python django django-celery

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

Django - PostgreSQL 设置 statement_timeout

我正在使用 Django 1.10 和 PostgreSQL DB。我想弄清楚我是否可以statement_timeout从 Django设置。似乎我不能像connect_timeout(in settings.py)那样做:

DATABASES[DEFAULT]['OPTIONS'] = {
    'connect_timeout': float(os.getenv('DEFAULT_DB_OPTIONS_TIMEOUT', 5))
}
Run Code Online (Sandbox Code Playgroud)

我看到了这样的东西,但我找不到验证它确实有效的方法:

DATABASES[DEFAULT]['OPTIONS'] = {
    'options': '-d statement_timeout=700'
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以直接从数据库设置它,如:

set statement_timeout=5000
Run Code Online (Sandbox Code Playgroud)

但我正在寻找一种从 Django 中做到这一点的方法。

python django postgresql

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