コード例 #1
0
def test_django_timezone():
    now = timezone.now()
    enc_data = dumps(now)
    dec_data = loads(enc_data)
    assert now == dec_data
    today = timezone.localdate()
    enc_data = dumps(today)
    dec_data = loads(enc_data)
    assert today == dec_data
コード例 #2
0
def test_simple_list():
    test_data = [
        [0, 1, 127, 128, 255, 256, 65535, 65536, 4294967295, 4294967296],
        [-1, -32, -33, -128, -129, -32768, -32769, -4294967296, -4294967297],
        1.0,
        b"",
        b"a",
        b"a" * 31,
        b"a" * 32,
        None,
        True,
        False,
        [],
        [
            [],
        ],
        [
            [],
            None,
        ],
        {
            0: None
        },
        (1 << 23),
    ]
    enc_data = dumps(test_data)
    dec_data = loads(enc_data)
    assert test_data == dec_data
コード例 #3
0
def test_django_orm_eval_with_db(admin_user):
    enc_data = dumps(['<auth.User.{}>'.format(admin_user.id), admin_user])
    dec_data = loads(enc_data)
    u, u1 = dec_data
    logger.debug("admin_user.id=%s", admin_user.id)
    assert u.username == u1.username == admin_user.username
    assert u.email == u1.email == admin_user.email
コード例 #4
0
def test_date_simple():
    d0 = date(2019, 9, 26)
    d1 = date(2019, 10, 16)
    test_data = ["2019-09-26", d1]
    enc_data = dumps(test_data)
    dec_data = loads(enc_data)
    assert [d0, d1] == dec_data
コード例 #5
0
def test_django_orm():
    from django.contrib.auth.models import User
    test_user = User(username="******", email="*****@*****.**")
    enc_data = dumps(test_user)
    dec_data = loads(enc_data)
    assert dec_data.username == test_user.username
    assert dec_data.email == test_user.email
コード例 #6
0
def test_datetime_simple2():
    d0 = datetime(2019,
                  9,
                  26,
                  9,
                  16,
                  35,
                  881134,
                  tzinfo=FixedOffset(0, name="UTC"))
    d1 = datetime(2019,
                  10,
                  16,
                  9,
                  32,
                  20,
                  555204,
                  tzinfo=FixedOffset(0, name="UTC"))
    d2_notz = datetime(2019, 9, 26, 9, 16, 35, 880000)
    test_data = {
        "d0": "2019-09-26 09:16:35.881134+00:00",
        "d1": d1,
        "dx":
        ["2019-09-26 09:16:35.880000", d2_notz, "2019-09-26 09:16:35.88"]
    }
    enc_data = dumps(test_data)
    dec_data = loads(enc_data)
    assert dict(d0=d0, d1=d1, dx=[d2_notz, d2_notz, d2_notz]) == dec_data
コード例 #7
0
def test_simple_tuple():
    test_data = (
        [0, 1, 127, 128, 255, 256, 65535, 65536, 4294967295, 4294967296],
        (-1, -32, -33, -128, -129, -32768, -32769, -4294967296, -4294967297),
        1.0,
        b"",
        b"a",
        b"a" * 31,
        b"a" * 32,
        None,
        True,
        False,
        [],
        [
            [],
        ],
        [
            [],
            None,
        ],
        {
            0: None
        },
        (1 << 23),
    )
    enc_data = dumps(test_data)
    dec_data = loads(enc_data)
    assert [list(e) if isinstance(e, tuple) else e
            for e in test_data] == dec_data
コード例 #8
0
def test_django_orm_eval_with_db_using_helper(admin_user):
    from django.contrib.auth.models import User
    enc_data = dumps(DjangoORM(User, admin_user.id))
    dec_data = loads(enc_data)
    u = dec_data
    logger.debug("admin_user.id=%s", admin_user.id)
    assert u.username == admin_user.username
    assert u.email == admin_user.email
コード例 #9
0
def test_decimal():
    test_data = [
        Decimal(1.5545),
        Decimal("1.4555"),
        Decimal("1.99"),
        Decimal(1.0 / 3), 1, 0
    ]
    enc_data = dumps(test_data)
    dec_data = loads(enc_data)
    assert test_data == dec_data
    assert sum(test_data) == sum(dec_data)
コード例 #10
0
def test_django_orm_queryset_with_db():
    from django.contrib.auth.models import User
    test_user_qs = User.objects.all().filter(last_login__isnull=False,
                                             id__gt=1000,
                                             date_joined__gt=timezone.now())
    enc_data = dumps(test_user_qs)
    dec_data = loads(enc_data)
    qs1 = test_user_qs.query
    qs2 = dec_data.query
    assert qs1.model._meta.db_table == qs2.model._meta.db_table
    assert str(qs1) == str(qs2)
コード例 #11
0
def test_simple_boxdict():
    test_data = {
        'a': 1,
        'b': 2,
        'c': 3,
        'd': '',
        'e': {
            'e0': 0,
            'e1': -1,
            'ee': ['e', 'e']
        }
    }
    enc_data = dumps(Box(test_data))
    dec_data = loads(enc_data)
    assert test_data == dec_data
コード例 #12
0
def test_time_simple():
    t0 = time(9, 16, 35, 881134)
    t1 = time(9, 32, 20, 555204)
    t1a = time(9, 32, 20)
    t1b = time(9, 32, 20, 600000)
    t1c = time(9, 32, 20, 66)
    test_data = [
        "09:16:35.881134", t1, {
            't1a': "09:32:20",
            't1b': "09:32:20.6",
            't1c': t1c
        }
    ]
    enc_data = dumps(test_data)
    dec_data = loads(enc_data)
    assert [t0, t1, {'t1a': t1a, 't1b': t1b, 't1c': t1c}] == dec_data
コード例 #13
0
def test_simple_dictionary():
    test_data = {
        "Type": 'Mount',
        "Path": {
            "Source": "/goalinvest/account_files",
            "Destination": "/var/account_files",
            "Mode": 1
        },
        "Modes": [1, 2, 3],
        "RW": True,
        "Propagation": "rprivate",
        "Level": 1.5
    }
    enc_data = dumps(test_data)
    dec_data = loads(enc_data)
    assert test_data == dec_data
コード例 #14
0
def test_django_orm_queryset_with_db_using_helper():
    from django.contrib.auth.models import User
    test_user_qs = User.objects.all().filter(
        last_login__isnull=False,
        id__gt=1000,
        date_joined__gt='2018-11-22 00:47:14.263837+00:00')
    raw_qs = DjangoQS(
        User,
        "last_login notnull and id > 1000 and date_joined > '2018-11-22 00:47:14.263837+00:00'"
    )
    enc_data = dumps(raw_qs)
    dec_data = loads(enc_data)
    qs1 = test_user_qs.query
    qs2 = dec_data.query
    logger.debug("%s <> %s", qs1, qs2)
    assert qs1.model._meta.db_table == qs2.model._meta.db_table
    assert len(test_user_qs) == len(dec_data)
コード例 #15
0
def test_django_orm_queryset_eval_with_db(admin_user):
    from django.contrib.auth.models import User
    test_user_qs = User.objects.all().filter(
        id__gte=1,  # last_login__isnull=False,
        date_joined__gt='2018-11-22 00:47:14.263837+00:00')
    qs_string = '(auth.User: {})'.format(
        "id >= 1 and date_joined > '2018-11-22 00:47:14.263837+00:00'")
    logger.debug(qs_string)
    enc_data = dumps(qs_string)
    dec_data = loads(enc_data)
    qs1 = test_user_qs.query
    qs2 = dec_data.query
    logger.debug("qs1=%s", qs1)
    logger.debug("qs2=%s", qs2)
    assert len(test_user_qs) == 1 == dec_data.count()
    assert list(test_user_qs) == list(dec_data)
    u = dec_data.first()
    assert u.username == admin_user.username
    assert u.email == admin_user.email
コード例 #16
0
def test_aenum():
    class TypeEnum(Enum):
        Mount = 'Mount'
        Link = 'Link'

    class ModeEnum(IntEnum):
        R = 1
        W = 2
        X = 3

    class PathConstant(Constant):
        Src = "/goalinvest/account_files"
        Dest = "/var/account_files"

    test_data = {
        "Type": TypeEnum.Mount,
        "Path": {
            "Source": PathConstant.Src,
            "Destination": PathConstant.Dest,
            "Mode": ModeEnum.R
        },
        "Modes": [ModeEnum.R, ModeEnum.W, ModeEnum.X],
        "RW": True,
        "Propagation": "rprivate",
        "Level": 1.5
    }
    enc_data = dumps(test_data)
    dec_data = loads(enc_data)
    out_data = {
        "Type": 'Mount',
        "Path": {
            "Source": "/goalinvest/account_files",
            "Destination": "/var/account_files",
            "Mode": 1
        },
        "Modes": [1, 2, 3],
        "RW": True,
        "Propagation": "rprivate",
        "Level": 1.5
    }
    assert out_data == dec_data
コード例 #17
0
def test_datetime_simple():
    d0 = datetime(2019,
                  9,
                  26,
                  9,
                  16,
                  35,
                  881134,
                  tzinfo=FixedOffset(0, name="UTC"))
    d1 = datetime(2019,
                  10,
                  16,
                  9,
                  32,
                  20,
                  555204,
                  tzinfo=FixedOffset(0, name="UTC"))
    test_data = ["2019-09-26 09:16:35.881134 +00:00", d1]
    enc_data = dumps(test_data)
    dec_data = loads(enc_data)
    assert [d0, d1] == dec_data
コード例 #18
0
def test_duration_simple():
    td0 = timedelta(9, 16, 35, 881134)
    td1 = timedelta(1, 1, 13, 123)
    td2 = timedelta(-2, 86398, 876987)
    td3 = timedelta(10, 9004)
    td4 = timedelta(0, 50398, 876987)
    td5 = timedelta(0, 50398, 800000)
    td6 = timedelta(0, 50398)
    td7 = timedelta(0, 839)
    td8 = timedelta(0, 13)
    test_data = [
        td0, td1, td2, td3, td4, td5, td6, td7, td8, "9 days, 0:14:57.134035",
        "1 day, 0:00:01.123013", "-2 days, 23:59:58.876987", "P10DT2H30M4S",
        "+13:59:58.876987", "+13:59:58.8", "+13:59:58", "+13:59", "+:13", "13",
        "-13", "14.15", "-15.14"
    ]
    enc_data = dumps(test_data)
    dec_data = loads(enc_data)
    assert [
        td0, td1, td2, td3, td4, td5, td6, td7, td8, td0, td1, td2, td3, td4,
        td5, td6, td7, td8, "13", "-13", "14.15", "-15.14"
    ] == dec_data
コード例 #19
0
def test_simple_boxlist():
    test_data = [{'a': 1}, {'b': 2}, {'c': 3}, 'd', 0]
    enc_data = dumps(BoxList(test_data))
    dec_data = loads(enc_data)
    assert test_data == dec_data
コード例 #20
0
def test_namedtuple():
    T = namedtuple('T', "foo bar")
    enc_data = dumps(T(foo=1, bar=42))
    dec_data = loads(enc_data)
    assert dec_data == {'foo': 1, 'bar': 42}
コード例 #21
0
def test_default_dictionary():
    test_data = defaultdict(type='Mount', modes=1, rw=True, level=1.5)
    enc_data = dumps(test_data)
    dec_data = loads(enc_data)
    assert dict(test_data) == dec_data
コード例 #22
0
def test_orderred_dictionary():
    test_data = OrderedDict(type='Mount', rw=True, level=1.5)
    test_data['modes'] = 1
    enc_data = dumps(test_data)
    dec_data = loads(enc_data)
    assert dict(test_data) == dec_data
コード例 #23
0
def test_django_orm_eval_with_db2():
    enc_data = dumps('<auth.User.2>')
    with tools.assert_raises(ObjectDoesNotExist):
        loads(enc_data)
コード例 #24
0
def test_unicode():
    test_data = ["", "abcd", ["defgh"], "Русский текст"]
    enc_data = dumps(test_data)
    dec_data = loads(enc_data)
    assert test_data == dec_data
コード例 #25
0
def test_django_orm_with_db(admin_user):
    enc_data = dumps(admin_user)
    dec_data = loads(enc_data)
    logger.debug("admin_user=%s", admin_user)
    assert dec_data.username == admin_user.username
    assert dec_data.email == admin_user.email