def test_delete_family_protocol_association_nonexistent_association(self):
     db_session.add_all([self.protocol1, self.family1])
     db_session.commit()
     q_str = '/api/protocol-family/{}/protocol/{}'.format(
         self.family1.family_id, self.protocol1.protocol_id)
     raw = self.app.delete(q_str)
     self.assertEqual(raw.status_code, 404)
 def test_add_family_protocol_association_nonexistent_protocol(self):
     db_session.add_all([self.family1])
     db_session.commit()
     q_str = '/api/protocol-family/{}/protocol/{}'.format(
         self.family1.family_id, 999)
     raw = self.app.post(q_str)
     self.assertEqual(404, raw.status_code)
 def test_get_protocol_families(self):
     db_session.add_all([self.family1, self.family2])
     db_session.commit()
     resp = json.loads(self.app.get('/api/protocol-family').data)
     self.assertEqual(resp,
                      [self.family1.to_json(),
                       self.family2.to_json()])
 def test_add_family_protocol_association_successful(self):
     db_session.add_all([self.family1, self.protocol1])
     db_session.commit()
     q_str = '/api/protocol-family/{}/protocol/{}'.format(
         self.family1.family_id, self.protocol1.protocol_id)
     self.app.post(q_str)
     pfp = ProtocolFamilyProtocol.query.first()
     self.assertEqual(pfp.family_id, self.family1.family_id)
     self.assertEqual(pfp.protocol_id, self.protocol1.protocol_id)
 def test_connect_part_protocol(self):
     part = Part(element_id=1234)
     protocol = Protocol(value='Turn off the lights when leaving')
     db_session.add_all([part, protocol])
     db_session.commit()
     raw = self.app.post('/api/part/{}/protocol/{}'.format(
         part.element_id, protocol.protocol_id))
     resp = json.loads(raw.data)
     added = PartProtocol.query.first()
     self.assertEqual(resp, added.to_json())
 def test_delete_family_protocol_association_successful(self):
     db_session.add_all([self.protocol1, self.family1])
     db_session.commit()
     pfp = ProtocolFamilyProtocol(protocol_id=self.protocol1.protocol_id,
                                  family_id=self.family1.family_id)
     db_session.add(pfp)
     db_session.commit()
     q_str = '/api/protocol-family/{}/protocol/{}'.format(
         self.family1.family_id, self.protocol1.protocol_id)
     self.app.delete(q_str)
     pfp_change = ProtocolFamilyProtocol.query.first()
     self.assertIsNone(pfp_change)
    def test_getting_some_users(self):
        db_session.add_all([self.user1, self.user2])
        db_session.commit()

        resp = json.loads(self.app.get('/api/user').get_data())
        self.assertEqual(len(resp), 2)
        if resp[0]['first_name'] == 'Brandon':
            self.assertEqual(resp[0], self.user1.to_json())
            self.assertEqual(resp[1], self.user2.to_json())
        else:
            self.assertEqual(resp[1], self.user1.to_json())
            self.assertEqual(resp[0], self.user2.to_json())
 def test_delete_part_protocol(self):
     db_session.add_all([self.part1, self.protocol1])
     db_session.commit()
     pp = PartProtocol(part_id=self.part1.part_id,
                       protocol_id=self.protocol1.protocol_id)
     db_session.add(pp)
     db_session.commit()
     raw = self.app.delete('/api/part/{}/protocol/{}'.format(
         self.part1.element_id, self.protocol1.protocol_id))
     deleted = (PartProtocol.query.filter(
         PartProtocol.part_id == self.part1.part_id).first())
     self.assertTrue(deleted is None)
 def test_get_parts_for_building_by_building_name(self):
     db_session.add(self.building1)
     db_session.commit()
     self.part1.building_id = self.building1.building_id
     self.part2.building_id = self.building1.building_id
     db_session.add_all([self.part1, self.part2])
     db_session.commit()
     raw = self.app.get('/api/building/{}/part'.format(self.building1.name))
     resp = json.loads(raw.data)
     expected = self.building1.to_json()
     expected['parts'] = [self.part1.to_json(), self.part2.to_json()]
     self.assertEqual(resp, expected)
 def test_get_some_protocols(self):
     p1 = Protocol(value='Don\'t touch the hot thing')
     p2 = Protocol(value='Turn off the lights when you leave')
     db_session.add_all([p1, p2])
     db_session.commit()
     resp = json.loads(self.app.get('/api/protocol').get_data())
     if resp[0]['value'].startswith('Turn'):
         self.assertEqual(p2.to_json(), resp[0])
         self.assertEqual(p1.to_json(), resp[1])
     else:
         self.assertEqual(p2.to_json(), resp[1])
         self.assertEqual(p1.to_json(), resp[0])
 def test_get_some_buildings(self):
     b1 = Building(name='Shelby')
     b2 = Building(name='Parker')
     db_session.add_all([b1, b2])
     db_session.commit()
     resp = json.loads(self.app.get('/api/building').get_data())
     self.assertEqual(len(resp), 2)
     if resp[0]['name'] == 'Shelby':
         self.assertEqual(b1.to_json(), resp[0])
         self.assertEqual(b2.to_json(), resp[1])
     else:
         self.assertEqual(b1.to_json(), resp[1])
         self.assertEqual(b2.to_json(), resp[0])
    def test_get_some_parts(self):
        p1 = Part(element_id=1234, building_id=3)
        p2 = Part(element_id=4567)
        db_session.add_all([p1, p2])
        db_session.commit()

        resp = json.loads(self.app.get('/api/part').get_data())
        self.assertEqual(len(resp), 2)
        if resp[0]['element_id'] == 1234:
            self.assertEqual(resp[0], p1.to_json())
            self.assertEqual(resp[1], p2.to_json())
        else:
            self.assertEqual(resp[1], p1.to_json())
            self.assertEqual(resp[0], p2.to_json())
 def test_get_protocols_for_family_successful(self):
     db_session.add_all([self.protocol1, self.protocol2, self.family1])
     db_session.commit()
     pfp1 = ProtocolFamilyProtocol(protocol_id=self.protocol1.protocol_id,
                                   family_id=self.family1.family_id)
     pfp2 = ProtocolFamilyProtocol(protocol_id=self.protocol2.protocol_id,
                                   family_id=self.family1.family_id)
     db_session.add_all([pfp1, pfp2])
     db_session.commit()
     q_str = '/api/protocol-family/{}'.format(self.family1.family_id)
     resp = json.loads(self.app.get(q_str).data)
     expected = {
         'family_id': self.family1.family_id,
         'family_name': self.family1.family_name,
         'protocols': [self.protocol1.to_json(),
                       self.protocol2.to_json()]
     }
     self.assertEqual(resp, expected)
 def test_get_protocols_by_part(self):
     part = Part(element_id=1234)
     protocol = Protocol(value='Turn off the lights when leaving')
     other_protocol = Protocol(value='Wash your hands')
     db_session.add_all([part, protocol, other_protocol])
     db_session.commit()
     part_protocol = PartProtocol(part_id=part.part_id,
                                  protocol_id=protocol.protocol_id)
     db_session.add(part_protocol)
     db_session.commit()
     raw = self.app.get('/api/part/{}/protocol'.format(part.element_id))
     resp = json.loads(raw.get_data())
     expected = {
         'part_id': part.part_id,
         'element_id': part.element_id,
         'protocols': [protocol.to_json()]
     }
     self.assertEqual(resp, expected)
 def test_delete_part_protocol_no_connection_fails(self):
     db_session.add_all([self.part1, self.protocol1])
     db_session.commit()
     raw = self.app.delete('/api/part/{}/protocol/{}'.format(
         self.part1.element_id, self.protocol1.protocol_id))
     self.assertEqual(raw.status_code, 404)