Пример #1
0
def test_transfert_queue():
    t1 = "testTopic"
    topic = Topics()
    q = Queue()

    topic.process(t1, 123)
    topic.process(t1, 456)
    topic.process(t1, 789)

    assert q.empty()

    topic.transfer(t1, q)

    assert q.qsize() > 0

    assert q.get() == [0, 123]
    assert q.get() == [1, 456]
    assert q.get() == [2, 789]

    topic.process(t1, 111)
    topic.process(t1, 222)

    assert q.qsize() > 0

    assert q.get() == [3, 111]
    assert q.get() == [4, 222]
Пример #2
0
def test_process():
    t1 = "testTopic"
    t2 = "otherTestTopic"
    t3 = "unknownTopic"
    topic = Topics()

    topic.process(t1, 123)
    assert t1 in topic.ls()
    assert len(topic.ls()) == 1

    topic.process(t2, "booyaa")
    assert t1 in topic.ls()
    assert t2 in topic.ls()
    assert len(topic.ls()) == 2

    topic.process(t1, 456)
    assert len(topic.ls()) == 2

    assert topic.samples(t1, amount=1) == [456]

    assert topic.samples(t1, amount=0) == [123, 456]

    assert topic.count(t1) == 2

    assert not topic.exists(t3)
    assert topic.exists(t1)
    assert topic.exists(t2)
Пример #3
0
def test_different_sources():
    t1 = "remoteTopic"
    t2 = "systemTopic"
    topics = Topics()

    topics.process(t1, 123)
    topics.process(t1, 456)
    topics.process(t1, 789)

    assert t1 in topics.ls()
    assert len(topics.ls()) == 1

    topics.create(t2, source="cli")

    topics.process(t2, 123)
    topics.process(t2, 456)
    topics.process(t2, 789)

    assert t1 in topics.ls()
    assert t2 not in topics.ls()
    assert len(topics.ls()) == 1

    assert t1 not in topics.ls(source="cli")
    assert t2 in topics.ls(source="cli")
    assert len(topics.ls(source="cli")) == 1
Пример #4
0
def test_transfert_queue_indexed_data():
    t1 = "testTopic"
    topic = Topics()
    q = Queue()

    topic.process(t1, 123, {'index': 5})
    topic.process(t1, 456, {'index': 6})
    topic.process(t1, 789, {'index': 7})

    assert q.empty()

    topic.transfer(t1, q, transfer_type='indexed')

    assert topic.intransfer(t1) == True

    assert q.qsize() > 0

    assert q.get() == [5, 123]
    assert q.get() == [6, 456]
    assert q.get() == [7, 789]

    topic.process(t1, 111, {'index': 5})
    topic.process(t1, 222, {'index': 6})
    topic.process(t1, 333, {'index': 7})
    topic.process(t1, 333, {'index': 8})

    assert q.qsize() > 0

    assert q.get() == [5, 111]
    assert q.get() == [6, 222]
    assert q.get() == [7, 333]
    assert q.get() == [8, 333]

    topic.untransfer(t1)

    assert topic.intransfer(t1) == False

    topic.process(t1, 111, {'index': 5})
    topic.process(t1, 222, {'index': 6})
    topic.process(t1, 333, {'index': 7})
    topic.process(t1, 333, {'index': 8})

    assert q.qsize() == 0
Пример #5
0
    def __init__(self, transport=None, stdout=None):
        # cmd Initialization and configuration
        cmd.Cmd.__init__(self, stdout=stdout)
        self.intro = 'pytelemetry terminal started.' \
                 + ' (type help for a list of commands.)'
        self.prompt = ':> '
        self.file = None

        # pytelemetry setup
        if not transport:
            self.transport = transports.SerialTransport()
        else:
            self.transport = transport
        self.telemetry = Pytelemetry(self.transport)

        self.topics = Topics()
        self.plots = []
        self.plotsLock = Lock()
        self.runner = Runner(self.transport, self.telemetry, self.plots,
                             self.plotsLock, self.topics)

        self.telemetry.subscribe(None, self.topics.process)

        self.types_lookup = {
            '--s': 'string',
            '--u8': 'uint8',
            '--u16': 'uint16',
            '--u32': 'uint32',
            '--i8': 'int8',
            '--i16': 'int16',
            '--i32': 'int32',
            '--f32': 'float32'
        }
        logger.info("Module path : %s" %
                    os.path.dirname(os.path.realpath(__file__)))
        try:
            logger.info("Module version : %s" % __version__)
        except:
            logger.warning("Module version : not found.")