小编nej*_*obi的帖子

Python SQLAlchemy 模拟

这是我进行链式数据库查询调用的一种方法。

import math
def get_all_keys():
    db_session = DBSession()
    keys = db_session.query(SomeClass).all()
Run Code Online (Sandbox Code Playgroud)

我应该嘲笑DBSession().query(SomeClass).all()。我尝试了一些,但没有任何效果。这是我的试验。

@patch('app.modules.somemodule.DBSession')
def test_asd(self, DBSession):
    DBSession.execute.query.execute.all.return_value = [1, 2, 3]
    self.assertListEqual(DBSession.query('qwe').all(), [1, 2, 3])
Run Code Online (Sandbox Code Playgroud)

在这次尝试中,如果我尝试打印,DBSession()我会得到一个MagicMock看起来不错的对象。但是当我运行时pytest出现以下错误。

    self = <test_some_module.SomeModuleTests testMethod=test_asd>, DBSession = <MagicMock name='DBSession' id='140028663111976'>

    @patch('app.modules.somemodule.DBSession')
    def test_asd(self, DBSession):
        DBSession.execute.query.execute.all.return_value = [1, 2, 3]
        print(DBSession().query('qwe').all())
>       self.assertListEqual(DBSession.query('qwe').all(), [1, 2, 3])
E       AssertionError: First sequence is not a list: <MagicMock name='DBSession.query().all()' id='140028662649184'>

tests/test_some_module.py:21: AssertionError
Run Code Online (Sandbox Code Playgroud)

好像我在嘲笑时做错了什么。我的错误是什么?我检查了文档。

python unit-testing sqlalchemy python-unittest python-unittest.mock

8
推荐指数
2
解决办法
2万
查看次数

bootstrap-datetimepicker与vue.js无法正常工作

我试图使用bootstrap-datepicker与Vue.js尝试创建一个简单的datepicker组件.问题是,当我写入输入时,组件的数据会更新.但是当我使用datepicker gui时,它不起作用.数据未更新.为什么?究竟缺少什么?

这是我的代码:

Vue.component('picker', {
  'props': {
    'date': {
      'twoWay': true
    }
  },
  'template': '\
      <div class="form-group">\
          <div class="input-group date datepicker">\
              <input type="text" class="form-control" v-bind:value="this.date">\
              <span class="input-group-addon">\
                  <span class="glyphicon glyphicon-calendar"></span>\
              </span>\
          </div>\
      </div>',
  'watch': {
    'date': function(value) {
      console.log('Updated!');
    }
  },
  'mounted': function() {
    $(this.$el.firstChild).datetimepicker();
  }
});

app = new Vue({
  'el': '#app',
  'data': {}
});
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html>

<head>
  <title></title>
  <!-- JQuery -->
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

  <!-- Transition ve Collapse -->
  <script src="collapse.js"></script>
  <script src="transition.js"></script>

  <!-- Moment JS -->
  <script …
Run Code Online (Sandbox Code Playgroud)

javascript bootstrap-datepicker vue.js

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