def test_record_edit(self):
        """
        Test edited record returns the same record ID with different data
        """
        # GIVEN: Record entries in database
        add_records(self.projector,
                    [Projector(**TEST1_DATA),
                     Projector(**TEST2_DATA)])

        # WHEN: We retrieve a specific record
        record = self.projector.get_projector_by_ip(TEST1_DATA['ip'])
        record_id = record.id

        # WHEN: Data is changed
        record.ip = TEST3_DATA['ip']
        record.port = TEST3_DATA['port']
        record.pin = TEST3_DATA['pin']
        record.name = TEST3_DATA['name']
        record.location = TEST3_DATA['location']
        record.notes = TEST3_DATA['notes']
        updated = self.projector.update_projector(record)
        self.assertTrue(updated,
                        'Save updated record should have returned True')
        record = self.projector.get_projector_by_ip(TEST3_DATA['ip'])

        # THEN: Record ID should remain the same, but data should be changed
        self.assertEqual(record_id, record.id,
                         'Edited record should have the same ID')
        self.assertTrue(compare_data(Projector(**TEST3_DATA), record),
                        'Edited record should have new data')
Beispiel #2
0
    def test_projector_repr(self):
        """
        Test Projector.__repr__() text
        """
        # GIVEN: Test object
        projector = Projector()

        # WHEN: projector() is populated
        # NOTE: projector.pin, projector.other, projector.sources should all return None
        #       projector.source_list should return an empty list
        projector.id = 0
        projector.ip = '127.0.0.1'
        projector.port = PJLINK_PORT
        projector.name = 'Test One'
        projector.location = 'Somewhere over the rainbow'
        projector.notes = 'Not again'
        projector.pjlink_name = 'TEST'
        projector.manufacturer = 'IN YOUR DREAMS'
        projector.model = 'OpenLP'

        # THEN: __repr__ should return a proper string
        self.assertEqual(str(projector),
                         '< Projector(id="0", ip="127.0.0.1", port="4352", pin="None", name="Test One", '
                         'location="Somewhere over the rainbow", notes="Not again", pjlink_name="TEST", '
                         'manufacturer="IN YOUR DREAMS", model="OpenLP", other="None", sources="None", '
                         'source_list="[]") >',
                         'Projector.__repr__() should have returned a proper representation string')
    def test_find_record_by_name(self):
        """
        Test find record by name
        """
        # GIVEN: Record entries in database
        add_records(self.projector,
                    [Projector(**TEST1_DATA),
                     Projector(**TEST2_DATA)])

        # WHEN: Search for record using name
        record = self.projector.get_projector_by_name(TEST2_DATA['name'])

        # THEN: Verify proper record returned
        self.assertTrue(compare_data(Projector(**TEST2_DATA), record),
                        'Record found should have been test_2 data')
Beispiel #4
0
 def exec_(self, projector=None):
     if projector is None:
         self.projector = Projector()
         self.new_projector = True
     else:
         self.projector = projector
         self.new_projector = False
     self.retranslateUi(self)
     reply = QDialog.exec_(self)
     return reply
    def test_record_delete(self):
        """
        Test record can be deleted
        """
        # GIVEN: Record in database
        add_records(self.projector, [
            Projector(**TEST3_DATA),
        ])
        record = self.projector.get_projector_by_ip(TEST3_DATA['ip'])

        # WHEN: Record deleted
        self.projector.delete_projector(record)

        # THEN: Verify record not retrievable
        found = self.projector.get_projector_by_ip(TEST3_DATA['ip'])
        self.assertFalse(found, 'test_3 record should have been deleted')
    def test_edit_form_edit_projector(self, mocked_exec):
        """
        Test projector edit form with existing projector entry

        :return:
        """
        # GIVEN: Mocked setup
        # WHEN: Calling edit form with existing projector instance
        self.projector_form.exec(projector=Projector(**TEST1_DATA))
        item = self.projector_form.projector

        # THEN: Should be editing an existing entry
        self.assertFalse(
            self.projector_form.new_projector,
            'Projector edit form should be marked as existing entry')
        self.assertTrue(
            (item.ip is TEST1_DATA['ip'] and item.name is TEST1_DATA['name']),
            'Projector edit form should have TEST1_DATA() instance to edit')
Beispiel #7
0
 def setUp(self, mocked_init_url):
     """
     Set up anything necessary for all tests
     """
     mocked_init_url.return_value = 'sqlite:///{}'.format(TEST_DB)
     self.build_settings()
     self.setup_application()
     Registry.create()
     # Do not try to recreate if we've already been created from a previous test
     if not hasattr(self, 'projectordb'):
         self.projectordb = ProjectorDB()
     # Retrieve/create a database record
     self.projector = self.projectordb.get_projector_by_ip(TEST1_DATA['ip'])
     if not self.projector:
         self.projectordb.add_projector(projector=Projector(**TEST1_DATA))
         self.projector = self.projectordb.get_projector_by_ip(
             TEST1_DATA['ip'])
     self.projector.dbid = self.projector.id
     self.projector.db_item = self.projector
    def test_source_add(self):
        """
        Test source entry for projector item
        """
        # GIVEN: Record entries in database
        projector1 = Projector(**TEST1_DATA)
        self.projector.add_projector(projector1)
        item = self.projector.get_projector_by_id(projector1.id)
        item_id = item.id

        # WHEN: A source entry is saved for item
        source = ProjectorSource(projector_id=item_id,
                                 code='11',
                                 text='First RGB source')
        self.projector.add_source(source)

        # THEN: Projector should have the same source entry
        item = self.projector.get_projector_by_id(item_id)
        self.assertTrue(compare_source(item.source_list[0], source))
    def test_projectorsource_repr(self):
        """
        Test ProjectorSource.__repr__() text
        """
        # GIVEN: test setup
        projector1 = Projector(**TEST1_DATA)
        self.projector.add_projector(projector1)
        item = self.projector.get_projector_by_id(projector1.id)
        item_id = item.id

        # WHEN: A source entry is saved for item
        source = ProjectorSource(projector_id=item_id,
                                 code='11',
                                 text='First RGB source')
        self.projector.add_source(source)

        # THEN: __repr__ should return a proper string
        self.assertEqual(
            str(source),
            '<ProjectorSource(id="1", code="11", text="First RGB source", projector_id="1")>',
            'ProjectorSource.__repr__)_ should have returned a proper representation string'
        )
Beispiel #10
0
    def test_projector_repr(self):
        """
        Test Projector.__repr__() text
        """
        # GIVEN: Test object
        projector = Projector()

        # WHEN: projector() is populated
        # NOTE: projector.pin, projector.other, projector.sources should all return None
        #       projector.source_list should return an empty list
        projector.id = 0
        projector.ip = '127.0.0.1'
        projector.port = PJLINK_PORT
        projector.name = 'Test One'
        projector.location = 'Somewhere over the rainbow'
        projector.notes = 'Not again'
        projector.pjlink_name = 'TEST'
        projector.manufacturer = 'IN YOUR DREAMS'
        projector.model = 'OpenLP'

        # THEN: __repr__ should return a proper string
        self.assertEqual(
            str(projector),
            '< Projector(id="0", ip="127.0.0.1", port="4352", pin="None", name="Test One", '
            'location="Somewhere over the rainbow", notes="Not again", pjlink_name="TEST", '
            'manufacturer="IN YOUR DREAMS", model="OpenLP", other="None", sources="None", '
            'source_list="[]") >',
            'Projector.__repr__() should have returned a proper representation string'
        )
Beispiel #11
0
# with this program; if not, write to the Free Software Foundation, Inc., 59  #
# Temple Place, Suite 330, Boston, MA 02111-1307 USA                          #
###############################################################################
"""
The :mod:`tests.resources.projector.data file contains test data
"""

import os
from openlp.core.lib.projector.db import Projector

# Test data
TEST_DB = os.path.join('tmp', 'openlp-test-projectordb.sql')

TEST1_DATA = Projector(ip='111.111.111.111',
                       port='1111',
                       pin='1111',
                       name='___TEST_ONE___',
                       location='location one',
                       notes='notes one')

TEST2_DATA = Projector(ip='222.222.222.222',
                       port='2222',
                       pin='2222',
                       name='___TEST_TWO___',
                       location='location two',
                       notes='notes two')

TEST3_DATA = Projector(ip='333.333.333.333',
                       port='3333',
                       pin='3333',
                       name='___TEST_THREE___',
                       location='location three',