示例#1
0
 def setUp(self):
     now = datetime.utcnow()
     self.messages = [
         Message(
             [None, None, None, None,
              now.strftime("%Y-%m-%d %H:%M:%S")], None)
     ]
     self.data = [1, 'foo', 'bar', now, now, self.messages]
示例#2
0
    def map(data, aircraft, client):
        flight = data['flight']
        txt = data['text']
        created_at = datetime.utcfromtimestamp(data['timestamp']).strftime('%Y-%m-%d %H:%M:%S')

        msg = Message([None, aircraft.id, flight, txt, created_at, client.id], client)

        return msg
示例#3
0
    def test_map_returns_message_when_all_fields_exist(self):
        datetime_expected = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')

        message_expected = Message([
            None, self.aircraft.id, self.data['flight'], self.data['text'],
            datetime_expected, self.client.id
        ], self.client)
        message_actual = self.mapper.map(self.data, self.aircraft, self.client)

        self.assertEqual(str(message_expected), str(message_actual))
示例#4
0
    def test_init_fills_properties(self):
        message = Message(self.data, self.client)

        self.assertEqual(self.data[0], message.id)
        self.assertEqual(self.data[1], message.aircraft_id)
        self.assertEqual(self.data[2], message.flight)
        self.assertEqual(self.data[3], message.txt)
        self.assertEqual(datetime.strptime(self.data[4], '%Y-%m-%d %H:%M:%S'),
                         message.created_at)
        self.assertEqual(self.client, message.client)
示例#5
0
    def test_fetch_by_returns_messages_when_exist(self):
        seen_datetime = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
        aircraft = mock.MagicMock()
        aircraft.id = 1
        client = mock.MagicMock()
        client.id = 1

        message = Message([None, 1, 'foo', 'bar', seen_datetime], client)
        message_id = self.mapper.insert(message, aircraft, client)

        messages = self.mapper.fetch_by('id', message_id)
        self.assertNotEqual([], messages)
示例#6
0
    def test_delete_does_nothing_when_message_does_not_exist(self):
        seen_datetime = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
        aircraft = mock.MagicMock()
        aircraft.id = 1
        client = mock.MagicMock()
        client.id = 1

        message = Message([None, 1, 'foo', 'bar', seen_datetime], client)
        message_id = self.mapper.insert(message, aircraft, client)

        message_non_existing = mock.MagicMock()
        message_non_existing.id = 999

        self.mapper.delete(message_non_existing)

        messages = self.mapper.fetch_by('id', message_id)
        self.assertNotEqual([], messages)
示例#7
0
    def fetch_by(self, column, value, order=None, limit=None):
        # default order and limit, if not set
        order = ('id', 'ASC') if order is None else order
        limit = -1 if limit is None else limit

        self.adapter.execute(
            """
                SELECT id, aircraft_id, flight, txt, created_at, client_id
                FROM messages
                WHERE {} = ?
                ORDER BY {} {} LIMIT {}
            """.format(column, order[0], order[1], limit), (value, ))
        results = self.adapter.fetchall()

        # map to models
        messages = []
        for result in results:
            client = ClientDbMapper(self.adapter).fetch(result[5])
            msg = Message(result, client)

            messages.append(msg)

        return messages
示例#8
0
    def test_str_returns_expected_string(self):
        str_expected = 'Aircraft ID: {}, Flight: {}, Created At: {}, Client ID: {}'.format(
            self.data[1], self.data[2], self.data[4], self.client.id)
        message = Message(self.data, self.client)

        self.assertEqual(str_expected, str(message))