File: test_serialize.py

package info (click to toggle)
pyroute2 0.8.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,700 kB
  • sloc: python: 50,245; makefile: 280; javascript: 183; ansic: 81; sh: 44; awk: 17
file content (31 lines) | stat: -rw-r--r-- 906 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import json
import pickle


def _check(context, loaded):
    names = set([x.get_attr('IFLA_IFNAME') for x in loaded])
    indices = set([x['index'] for x in loaded])
    assert names == {x.ifname for x in context.ndb.interfaces.dump()}
    assert indices == {x.index for x in context.ndb.interfaces.dump()}


def test_pickle(context):
    links = tuple(context.ipr.link('dump'))
    saved = pickle.dumps(links)
    loaded = pickle.loads(saved)
    _check(context, loaded)


def test_json(context):
    links = tuple(context.ipr.link('dump'))
    saved = json.dumps([x.dump() for x in links])
    msg_type = type(links[0])
    loaded = [msg_type().load(x) for x in json.loads(saved)]
    _check(context, loaded)


def test_dump(context):
    links = tuple(context.ipr.link('dump'))
    saved = [(type(x), x.dump()) for x in links]
    loaded = [x[0]().load(x[1]) for x in saved]
    _check(context, loaded)