小编bor*_*ges的帖子

如何在Jest中模拟Webpack的require.context?

假设我有以下模块:

var modulesReq = require.context('.', false, /\.js$/);
modulesReq.keys().forEach(function(module) {
  modulesReq(module);
});
Run Code Online (Sandbox Code Playgroud)

Jest抱怨因为它不知道require.context:

 FAIL  /foo/bar.spec.js (0s)
? Runtime Error
  - TypeError: require.context is not a function
Run Code Online (Sandbox Code Playgroud)

我怎么嘲笑它?我尝试使用setupTestFrameworkScriptFileJest配置,但测试无法看到我所做的任何更改require.

webpack jestjs

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

删除堆叠的TextView之间的空间

我有一个垂直的里面LinearLayout有两个TextView.前者包含静态文本属性(它的文本永远不会更改),最后一个包含回归计时器.下图显示了两个项目:

堆叠的textviews

我想消除两个文本都有顶部和底部的空白区域.我尝试了几种方法......

android:includeFontPadding="false"
android:lineSpacingMultiplier="1"
android:lineSpacingExtra="0dp"
android:paddingTop="0dp"
android:paddingBottom="0dp"
android:layout_marginTop="0dp"
android:layout_marginBottom="0dp"
Run Code Online (Sandbox Code Playgroud)

......但他们都没有删除文本上方的空格.如何在没有任何额外空间的情况下使两个文本彼此靠近?

PS:我发现了类似的问题,但没有人回答.


完整的布局代码:

<LinearLayout 
    android:id="@+id/boxTime"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="20dp" >

    <TextView
        android:id="@+id/textRemainingTime2"
        android:layout_width="wrap_content"
        android:layout_heigh="wrap_content"
        android:layout_gravity="center"
        android:gravity="center_horizontal"
        android:textSize="70sp"
        android:includeFontPadding="false"
        android:lineSpacingMultiplier="1"
        android:lineSpacingExtra="0dp"
        android:paddingTop="0dp"
        android:paddingBottom="0dp"
        android:layout_marginTop="0dp"
        android:layout_marginBottom="0dp"
        android:text="@string/title" />

    <TextView
        android:id="@+id/textRemainingTime"
        android:layout_width="wrap_content"
        android:layout_heigh="wrap_content"
        android:layout_gravity="center"
        android:gravity="center_horizontal"
        android:includeFontPadding="false"
        android:lineSpacingMultiplier="1"
        android:lineSpacingExtra="0dp"
        android:paddingTop="0dp"
        android:paddingBottom="0dp"
        android:layout_marginTop="0dp"
        android:layout_marginBottom="0dp"
        android:textSize="107sp"
        android:text="@string/timer" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

android textview android-layout

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

在Android Facebook sdk 3.0上使用proguard时出错

警告:我删除了很多"旧文本"以使问题更加清晰.如果需要,只需查看历史记录.

我正在使用proguard缩小和混淆使用facebook sdk 3.0的应用程序(我正在使用sdk-version-3.0.2.b标记).我没有使用JAR文件.相反,我按照文档中的说明在我的工作区中导入了sdk .

在执行的某个时刻,应用程序加载PlacePickerFragment以让用户选择他所在的位置.为了编写代码,我完全遵循了美味的教程.当我生成调试apk而不使用proguard一切按预期工作.但是当我使用生成签名的apk时proguard,它会在PlacePickerFragment使用以下跟踪加载附近的地方时崩溃:

E/AndroidRuntime(27472): FATAL EXCEPTION: main
E/AndroidRuntime(27472): com.facebook.FacebookGraphObjectException: can't infer generic type of: interface com.facebook.model.GraphObjectList
E/AndroidRuntime(27472):    at com.facebook.model.GraphObject$Factory.coerceValueToExpectedType(Unknown Source)
E/AndroidRuntime(27472):    at com.facebook.model.GraphObject$Factory$GraphObjectProxy.proxyGraphObjectGettersAndSetters(Unknown Source)
E/AndroidRuntime(27472):    at com.facebook.model.GraphObject$Factory$GraphObjectProxy.invoke(Unknown Source)
E/AndroidRuntime(27472):    at com.facebook.widget.$Proxy2.getData(Native Method)
E/AndroidRuntime(27472):    at com.facebook.widget.GraphObjectPagingLoader.addResults(Unknown Source)
E/AndroidRuntime(27472):    at com.facebook.widget.GraphObjectPagingLoader.requestCompleted(Unknown Source)
E/AndroidRuntime(27472):    at com.facebook.widget.GraphObjectPagingLoader.access$1(Unknown Source)
E/AndroidRuntime(27472):    at com.facebook.widget.GraphObjectPagingLoader$2.onCompleted(Unknown Source)
E/AndroidRuntime(27472):    at com.facebook.Request$4.run(Unknown Source)
E/AndroidRuntime(27472):    at android.os.Handler.handleCallback(Handler.java:587)
E/AndroidRuntime(27472):    at android.os.Handler.dispatchMessage(Handler.java:92) …
Run Code Online (Sandbox Code Playgroud)

android facebook proguard facebook-android-sdk

17
推荐指数
2
解决办法
7944
查看次数

调用`pip install`时运行自定义任务

我想让我的python包"可以安装pip".问题是该软件包具有必须在用户的init shell脚本中提供的shell脚本(例如.bashrc).

但是在安装之后,用户并不完全知道脚本的去向(大概是/usr/bin,但我们无法保证).当然,用户可以运行which myscript.sh并手动编辑他的init脚本.

但我想自动完成这一步.我可以创建一个新的distutils命令,但pip install不会调用它.我可以扩展distutils.command.install.install,但安装通过pip中断(虽然通过工作python setup.py install):

setup.py

from distutils.command.install import install

class CustomInstall(install):
def run(self):
    install.run(self)
    # custom stuff here
    do_my_stuff()

setup(..., cmdclass={'install': CustomInstall})
Run Code Online (Sandbox Code Playgroud)

贝壳

$ pip install dist/mypackage.tar.gz
Unpacking ./dist/mypackage.tar.gz
  Running setup.py egg_info for package from file:///path/to/mypackage/dist/mypackage.tar.gz

Installing collected packages: mypackage
  Running setup.py install for mypackage
    usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
       or: -c --help [cmd1 cmd2 ...]
       or: -c --help-commands
       or: -c …
Run Code Online (Sandbox Code Playgroud)

python distutils pip

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

Django ORM如何舍入平均结果

我有一个模型,我使用Django ORM从表中提取平均值.我想要舍入Avg值,我该怎么做?

请参阅下文我从YYYY-MM格式的按日期分组的价格模型中提取平均价格,我想自动提取四舍五入到最接近数字的平均值.

rs = Prices.objects.all.extra(select={
    'for_date': 'CONCAT(CONCAT(extract( YEAR from for_date ), "-"),
        LPAD(extract(MONTH from for_date), 2, "00"))'
    }).values('for_date').annotate(price=Avg('price')).order_by('-for_date')
Run Code Online (Sandbox Code Playgroud)

django orm model average rounding

11
推荐指数
5
解决办法
6643
查看次数

如何正确运行localtunnel v2

我正在使用localtunnel v1.但是我发现v2允许你自定义子域,我需要这个功能.

我跟着介绍的教程README资源库,但它让我感到困惑的几个部分,并在结束时,它没有工作.

第一步是在端口号上运行一些web-app:checked.8000.

然后,它说了一些关于主机名的内容:

Localtunnel使用主机名执行一些操作,因此您需要设置两个主机名.一个用于localtunnel注册,一个用于本地隧道.通常它需要一个通配符,但我们只是硬编码这个示例隧道的主机名.

example.localtunnel.local - > 127.0.0.1
localtunnel.local - > 127.0.0.1

您可以在/ etc/hosts中执行此操作或使用该奇特的ghost实用程序.

我迷路了,但我仍然编辑了我/etc/hosts:

127.0.0.1   localhost
127.0.1.1   my-pc-name
127.0.0.1   example.localtunnel.local
127.0.0.1   localtunnel.local
Run Code Online (Sandbox Code Playgroud)

下一步...

现在您可以启动服务器了.它基于config目录中的配置文件.您可以创建自己的,但是这个配置为在端口9999上运行服务器并且期望​​主机名localtunnel.local

ginkgo config/default.conf.py

哪一个?无论如何......我根据localtunnel repo的目录中的文件创建了myconfig.conf.py /deploy:

port = 9999
hostname = 'localtunnel.local'
service = 'localtunnel.server.TunnelBroker'
Run Code Online (Sandbox Code Playgroud)

但是,当我跑:

lt --broker 127.0.0.1:9999 --name example 8000
Run Code Online (Sandbox Code Playgroud)

我有:

Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/gevent/greenlet.py", line 390, in run
  result = self._run(*self.args, **self.kwargs)
File "/usr/local/lib/python2.7/dist-packages/localtunnel/client.py", line 53, in …
Run Code Online (Sandbox Code Playgroud)

python networking tunnel

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

如何在argparse互斥组中包含一个位置参数?

我知道,对于一个互相排斥的群体来说,多个位置论证是没有意义的,因为你不能说谁是谁.但我需要在其中包含一个位置参数.

我需要的:

$ myprogram -h
usage: myprogram [-h] [--delete value | --update value | value]
Run Code Online (Sandbox Code Playgroud)

其中position value是默认操作(类型为"--include").(myprogram没有参数也必须有效).

我的第一次尝试(这不起作用):

parser = ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument('--delete', metavar='value')
group.add_argument('--update', metavar='value')
group.add_argument('value')
Run Code Online (Sandbox Code Playgroud)

那可能吗?


第二次尝试:

parser = ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument('--delete', action='store_true')
group.add_argument('--update', action='store_true')
group.add_argument('--insert', action='store_true', default=True)
group.add_argument('value')
Run Code Online (Sandbox Code Playgroud)

python argparse

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

检查变量是否在Ansible的字典中的列表中

我有以下任务:

- name: Retrieve records from Route53
  route53:
    command: get
    zone: "{{ stag_zone }}"
    record: "{{ stag_record }}"
    type: A
    aws_access_key: "{{ aws_access_key }}"
    aws_secret_key: "{{ aws_secret_key }}"
  register: rec

- name: Print records
  debug: var=rec

- name: Record contains IP
  debug: msg="{{rec}} contains {{stag_ip}}"
  when: "'{{stag_ip}}' in {{rec.set.values}}"
Run Code Online (Sandbox Code Playgroud)

Print records任务输出是这样的:

ok: [XXX.XXX.XXX.XXX] => {
    "var": {
        "rec": {
            "changed": false, 
            "invocation": {
                "module_args": "", 
                "module_name": "route53"
            }, 
            "set": {
                "alias": false, 
                "record": "YYY.XXX.ZZZ.", 
                "ttl": "300", 
                "type": "A", …
Run Code Online (Sandbox Code Playgroud)

jinja2 ansible

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

子类构造函数返回一个超类对象

我专注django.contrib.gis.geos.Point于更好地创建和处理具有明确纬度和经度的点.

我目前的代码:

from django.contrib.gis.geos import Point

class LLPoint(Point):
    def __init__(self, *args, **kwargs):
        lat = kwargs.get('latitude')
        lng = kwargs.get('longitude')

        if lat and lng:
            super(LLPoint, self).__init__(lng, lat)
        elif lat or lng:
            raise TypeError(u'You must both declare latitude and longitude, '
                'not just one of them.')
        else:
            super(LLPoint, self).__init__(*args, **kwargs)

    def __unicode__(self):
        c = self.coordinates()
        return u'LLPoint Lat: %.5f Lng: %.5f' % (c['latitude'], c['longitude']) 

    def coordinates(self):
        return {
            'latitude': self.coords[1], 
            'longitude': self.coords[0]
        }
Run Code Online (Sandbox Code Playgroud)

问题是:

>>> LLPoint(latitude=10.0, longitude=20.0)
<Point object …
Run Code Online (Sandbox Code Playgroud)

python django

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

确定锁定屏幕已解锁

我想在特定情况下仅在某个活动不可见时在我的应用中启动通知.

当我创建并销毁Activity时(使用onCreate/onDestroy),如果通过onPause/onResume方法可以看到此Activity,我设法在服务的绑定/取消绑定中执行此操作e,如下面的代码所示:

public void onCreate(Bundle savedInstanceState) {
    // ...
    bindService(...);
}

public void onDestroy() {
    // ...
    unbindService(mConnection);
}

public void onResume() {
    // ...
    // this method sets to true the Service's boolean which retain Activity's visibility.
    mService.registerActivity(true);
}

public void onPause() {
    mService.registerActivity(false);
}
Run Code Online (Sandbox Code Playgroud)

在服务上,我检查此布尔值以启动通知.

它适用于除特定情况之外的所有情况:在此活动中打开应用程序但启用了锁定屏幕.

通过我做的一些测试,当锁屏出现时,调用Activity.onPause方法.我希望锁定屏幕解锁后才调用Activity.onResume方法,但事实并非如此.当我按下电源按钮来召唤锁定屏幕时,已经调用了Activity.onResume方法.从这个意义上说,我所做的是不对的.

如何仅在用户解锁锁定屏幕时才调用Activity.onResume方法?或者......我怎样才能确定锁定屏幕已解锁且用户真的在看活动?

android android-notifications android-activity

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