Ejemplo n.º 1
0
    def test_find_nonexistent_entry_by_name(self):
        book = PhoneBook()
        book.add_entry('João', '(11) 1234 4321')

        entry = book.find_by_name('Maria')

        self.assertIsNone(entry)
Ejemplo n.º 2
0
 def __init__(self, manufacturer, model, os):
     """
     init method
     """
     self.manufacturer = manufacturer
     self.model = model
     self.os = os
     self.owner = "No owner yet"
     self._phonebook = PhoneBook()
Ejemplo n.º 3
0
 def test_lookup_by_name(self):
     phonebook = PhoneBook(
     )  # Click alt+enter and choose a create new class
     phonebook.add(
         "Bob", '12345'
     )  # PyCharm is highlight a word which needed to define -> click right ande choose 'Add method add() to class PhoneBook'
     number = phonebook.lookup(
         "Bob")  # Click 'Add method lookup() to class PhoneBook'
     self.assertEqual("12345", number)
def main():
    phonebook = PhoneBook("Examples/Classes/contacts.csv", ";")

    # Kaksi oliota. Oliot on luotu samasta luokasta, mutta niillä on omat muuttujien arvonsa (olion tila)
    person1 = Contact("Maija", "Meikäläinen", "123454321", 1990)
    person2 = Contact("Matti", "Meikäläinen", "987656789", 1991)
    person3 = Student("Aimo", "Opiskelija", "1232123", 2000, 12345)

    phonebook.AddContact(person1)
    phonebook.AddContact(person2)
    phonebook.AddContact(person3)

    phonebook.PrintContacts()

    phonebook.SaveContacts(";")
Ejemplo n.º 5
0
def main():
    phonebook = PhoneBook("Examples/Classes/contacts.csv")

    person1 = Contact("Maija", "Meikäläinen", "123456789", 1990)
    person2 = Contact("Matti", "Meikäläinen", "987654321", 1991)
    person3 = Student("Osku", "Opiskelija", "987656789", 2000, 54321)
    person4 = Teacher("Sami", "Kojo-Fry", "12121212", 1987, "A3-??")

    phonebook.AddContact(person1)
    phonebook.AddContact(person2)
    phonebook.AddContact(person3)
    phonebook.AddContact(person4)

    phonebook.PrintContacts()

    phonebook.SaveContacts()
Ejemplo n.º 6
0
def fileParse(xml_file):
    # parse selected avm_file from fileDialog
    while True:
        try:
            global tree, names
            tree = ET.ElementTree(file=xml_file)
            root = tree.getroot()
            print(root)
            no_count.set(len(root[0]))
            names = PhoneBook(tree).address()
            lbox.insert("end", *names[0].values())
            return tree
            break
        except ET.ParseError:
            _msgBox_error()
            print("Oops!  That was no valid XML.  Try another one ...")
            break
Ejemplo n.º 7
0
    def run(self):
        self._load_configuration()
        self._init_database()
        self.pb = PhoneBook(self.dbconn)

        logging.info("Starting IRCThread thread")
        self.irc_thread = IRCThread(self,
                                    self.config['server'],
                                    self.config['server_port'],
                                    self.config['nickname'],
                                    self.config['channel'])
        self.irc_thread.start()

        logging.info("Starting webserver")
        http_thread = HTTPThread(self, ('0.0.0.0', 8090))
        http_thread.start()

        logging.info("Starting main loop")
        self._main_loop()
Ejemplo n.º 8
0
def test_phonebook_gives_access_to_names_and_numbers():
    phonebook = PhoneBook()
    phonebook.add("Alice", "67890")
    assert "Alice" in phonebook.names()
    assert "67890" in phonebook.numbers()
Ejemplo n.º 9
0
 def setUp(self) -> None:
     """
     The setUp method is called each time a test case is executed.
     :return: PhoneBook Class.
     """
     self.phonebook = PhoneBook()
 def test_missing_name(
         self
 ):  # What happend if we have name which doesn;t exist in phonebook
     phonebook = PhoneBook()
     with self.assertRaises(KeyError):
         phonebook.lookup("missing")
Ejemplo n.º 11
0
    def init_mw(self, tmw=None):
        """ 
        Method to initialize main window (menus and frames) 
        """
        t0 = time.time()
        alarmApp = self
        tmw = tmw if isinstance(tmw, Qt.QMainWindow) else CleanMainWindow()
        tmw.setWindowTitle('PANIC')
        tmw.menuBar = Qt.QMenuBar(tmw)
        tmw.toolsMenu = Qt.QMenu('Tools', tmw.menuBar)
        tmw.fileMenu = Qt.QMenu('File', tmw.menuBar)
        tmw.viewMenu = Qt.QMenu('View', tmw.menuBar)
        tmw.helpMenu = Qt.QMenu('Help', tmw.menuBar)

        tmw.setMenuBar(tmw.menuBar)
        [
            tmw.menuBar.addAction(a.menuAction())
            for a in (tmw.fileMenu, tmw.toolsMenu, tmw.helpMenu, tmw.viewMenu)
        ]
        toolbar = Qt.QToolBar(tmw)
        toolbar.setIconSize(Qt.QSize(20, 20))

        tmw.helpMenu.addAction(getThemeIcon("applications-system"), "Webpage",
                               lambda: os.system('konqueror %s &' % PANIC_URL))
        tmw.toolsMenu.addAction(getThemeIcon("applications-system"), "Jive",
                                lambda: os.system('jive &'))
        tmw.toolsMenu.addAction(getThemeIcon("applications-system"), "Astor",
                                lambda: os.system('astor &'))
        tmw.fileMenu.addAction(getThemeIcon(":/designer/back.png"),
                               "Export to CSV file", alarmApp.saveToFile)
        tmw.fileMenu.addAction(getThemeIcon(":/designer/forward.png"),
                               "Import from CSV file", alarmApp.loadFromFile)
        tmw.fileMenu.addAction(getThemeIcon(":/designer/filereader.png"),
                               "Use external editor", alarmApp.editFile)
        tmw.fileMenu.addAction(getThemeIcon("applications-system"), "Exit",
                               tmw.close)
        tmw.viewMenu.connect(tmw.viewMenu, Qt.SIGNAL('aboutToShow()'),
                             alarmApp.setViewMenu)

        from phonebook import PhoneBook
        alarmApp.tools['bookApp'] = WindowManager.addWindow(
            PhoneBook(container=tmw))
        tmw.toolsMenu.addAction(getThemeIcon("x-office-address-book"),
                                "PhoneBook", alarmApp.tools['bookApp'].show)
        toolbar.addAction(getThemeIcon("x-office-address-book"), "PhoneBook",
                          alarmApp.tools['bookApp'].show)

        trend_action = (getThemeIcon(":/designer/qwtplot.png"), 'Trend',
                        lambda: WindowManager.addWindow(
                            widgets.get_archive_trend(show=True)))
        tmw.toolsMenu.addAction(*trend_action)
        toolbar.addAction(*trend_action)

        alarmApp.tools['config'] = WindowManager.addWindow(
            dacWidget(container=tmw))
        tmw.toolsMenu.addAction(getThemeIcon("applications-system"),
                                "Advanced Configuration",
                                alarmApp.tools['config'].show)
        toolbar.addAction(getThemeIcon("applications-system"),
                          "Advanced Configuration",
                          alarmApp.tools['config'].show)

        toolbar.setMovable(False)
        toolbar.setFloatable(False)
        tmw.addToolBar(toolbar)

        if SNAP_ALLOWED:
            alarmApp.tools['history'] = WindowManager.addWindow(
                ahWidget(container=tmw))
            tmw.toolsMenu.addAction(getThemeIcon("office-calendar"),
                                    "Alarm History Viewer",
                                    alarmApp.tools['history'].show)
            toolbar.addAction(getThemeIcon("office-calendar"),
                              "Alarm History Viewer",
                              alarmApp.tools['history'].show)
        else:
            trace("Unable to load SNAP", 'History Viewer Disabled!')

        alarm_preview_action = (getThemeIcon("accessories-calculator"),
                                "Alarm Calculator",
                                lambda g=alarmApp: WindowManager.addWindow(
                                    AlarmPreview.showEmptyAlarmPreview(g)))
        [o.addAction(*alarm_preview_action) for o in (tmw.toolsMenu, toolbar)]

        try:
            import PyTangoArchiving.widget.ArchivingBrowser
            MSW = PyTangoArchiving.widget.ArchivingBrowser.ModelSearchWidget
            alarmApp.tools['finder'] = WindowManager.addWindow(MSW())
            tmw.toolsMenu.addAction(getThemeIcon("system-search"),
                                    "Attribute Finder",
                                    alarmApp.tools['finder'].show)
            toolbar.addAction(getThemeIcon("system-search"),
                              "Attribute Finder",
                              alarmApp.tools['finder'].show)
        except:
            print('PyTangoArchiving not available')
            #traceback.print_exc()

        import panic.gui.panel

        def showNewAlarmPanel(s=self, a=alarmApp):
            i = len([
                w for w in WindowManager.getWindowsNames()
                if w.startswith('panel')
            ])
            name = 'panel%d' % i
            a.tools[name] = WindowManager.addWindow(
                panic.gui.panel.QAlarmPanel())
            a.tools[name].setModel(s.view)
            a.tools[name].show()

        url = os.path.dirname(panic.__file__) + '/gui/icon/panel-view.png'
        panel_icon = Qt.QIcon(Qt.QPixmap(url))
        alarm_panel_action = (panel_icon, "Alarm Panel", showNewAlarmPanel)
        [o.addAction(*alarm_panel_action) for o in (tmw.toolsMenu, toolbar)]

        import panic.gui.views
        alarmApp.tools['rawview'] = WindowManager.addWindow(
            panic.gui.views.ViewRawBrowser())
        #url = os.path.dirname(panic.__file__)+'/gui/icon/panel-view.png'
        #panel_icon = Qt.QIcon(Qt.QPixmap(url))
        alarm_panel_action = (
            getThemeIcon('actions:leftjust.svg'), "RawView",
            lambda s=self: alarmApp.tools['rawview'].setModel(self))
        [o.addAction(*alarm_panel_action) for o in (tmw.toolsMenu, )]

        print('Toolbars created after %s seconds' % (time.time() - t0))
        tmw.setCentralWidget(alarmApp)
        tmw.show()
        return tmw
Ejemplo n.º 12
0
def run_app():
    book = PhoneBook('personal book')

    # populate the book with test data
    for i in range(10):
        book.add_contact('Jhon' + str(i),
                         'Smith',
                         '+71234567809' + str(i),
                         favorite_contact=False,
                         telegram='@jhony',
                         email='*****@*****.**')

    book.add_contact('Jhon_fav',
                     'Smith',
                     '+712345678090',
                     favorite_contact=book.find_contact('Jhon2', 'Smith'),
                     telegram='@jhony',
                     email='*****@*****.**')
    book.add_contact('Jhon_fav2',
                     'Smith',
                     '+712345671090',
                     favorite_contact=book.find_contact('Jhon3', 'Smith'),
                     telegram='@jhony',
                     email='*****@*****.**')

    print(info_message)
    while True:
        cmd = input("Выберите действие:\n").lower()
        if cmd in cmd_list:
            if cmd == 'q':
                break
            elif cmd == 'p':
                book.print_contacts()
            elif cmd == 's':
                firstname = input("Введите имя:\n")
                lastname = input("Введите фамилию:\n")
                print(book.find_contact(firstname, lastname))
            elif cmd == 'a':
                firstname = input("Введите имя:\n")
                lastname = input("Введите фамилию:\n")
                phone_number = input("Введите номер:\n")
                fav_contact_id = input(
                    "Введите любимый контакт по номеру в списке или Enter для пропуска:\n"
                )
                if fav_contact_id:
                    fav_contact = book.find_contact_by_id(fav_contact_id)
                    if not fav_contact:
                        print("Любимый контакт не найдет. Продолжение работы.")

                print(
                    'Введите дополнительную информацию в формате "key=value" или Enter для пропуска:\n'
                )
                additional_info = dict()
                while True:
                    v = input("Введите дополнительную информацию :\n").strip()
                    if v == '':
                        break
                    else:
                        additional_info.update([tuple(v.split('='))])
                book.add_contact(firstname, lastname, phone_number,
                                 fav_contact, **additional_info)
            elif cmd == 'd':
                phone_number = input("Введите номер телефона:\n")
                print("Контакт(ы) удилен(ы)" if book.
                      del_contact(phone_number) else "Контакт не найден")
            elif cmd == 'f':
                pprint(book.get_all_favorite_numbers())
 def setUp(self) -> None:  # Super class
     self.phonebook = PhoneBook()
Ejemplo n.º 14
0
from phonebook import PhoneBook

phone_book_name = 'Fun'
phone_book = PhoneBook(phone_book_name)
phone_book.add_contact('Igor',
                       'Tsallagov',
                       '+79162208682',
                       Telegram='@ionathz',
                       Email='*****@*****.**',
                       Twitter='@chrismexx',
                       Instagram='@chrismexx',
                       favourite=True)
def phonebook(tmpdir):
    "Provides an empty phonebook"
    return PhoneBook(tmpdir)
Ejemplo n.º 16
0
 def setUp(self):
     # Begining of every test
     self.phonebook = PhoneBook()
Ejemplo n.º 17
0
 def setUp(self) -> None:
     # construct a new phonebook instance before each test case executes
     self.phonebook = PhoneBook()
def test_missing_key_raises_error(phonebook):
    phonebook = PhoneBook()
    with pytest.raises(KeyError):
        phonebook.lookup('missing')
Ejemplo n.º 19
0
 def setUp(self) -> None:
     # this will be now created for each test cases, so no need to create instance in every test function
     # rather use self.phonebook
     self.phonebook = PhoneBook()
def phonebook():
    return PhoneBook()
 def test_lookup_by_name(self):
     phonebook = PhoneBook()
     phonebook.add("Bob", '12345')
     number = phonebook.lookup("Bob")
     self.assertEqual("12345", number)
Ejemplo n.º 22
0
 def setUp(self) -> None:
     # print("In setUp")
     self.phonebook: PhoneBook = PhoneBook()
Ejemplo n.º 23
0
 def setUp(self):
     self.phonebook = PhoneBook()
Ejemplo n.º 24
0
def pb():
    pb = PhoneBook()
    yield pb
    pb.clear()
Ejemplo n.º 25
0
def phonebook(tmpdir):
    phonebook = PhoneBook(tmpdir)
    return phonebook
Ejemplo n.º 26
0
jhon = Contact('Jhon',
               'Smith',
               '+71234567809',
               telegram='@jhony',
               email='*****@*****.**',
               address='USA')
donald = Contact('Donald',
                 'Trump',
                 '+712134267809',
                 favorite=True,
                 address='White House')
george = Contact('George',
                 'Bush',
                 '+1232134267809',
                 True,
                 status='ExPresident')
bill = Contact('Bill', 'Clinton', '+7892134267809', instrument='Sax')
barack = Contact('Barack ', 'Obama', '+778934267809', born="Africa")

Mypb = PhoneBook('Mypb')
Mypb.add_new(jhon)
Mypb.add_new(donald)
Mypb.add_new(george)
Mypb.add_new(bill)
# Mypb.print_book()
# Mypb.remove('+71234567809')
# Mypb.print_book()
# Mypb.search_fav()
Mypb.search_by('Donald', 'Trump')
Ejemplo n.º 27
0
def test_add_and_lookup_entry():
    phonebook = PhoneBook()
    phonebook.add("Bob", "12345")
    assert "12345" == phonebook.lookup("Bob")
Ejemplo n.º 28
0
def phonebook(tmpdir):
    phonebook = PhoneBook(tmpdir)
    yield phonebook
    phonebook.clear()
Ejemplo n.º 29
0
 def setUp(self) -> None:
     self.phonebook = PhoneBook()
Ejemplo n.º 30
0
 def test_missing_name(self):
     phonebook = PhoneBook()
     # phonebook without args -> passes because the phonebook it is an dictionary
     with self.assertRaises(KeyError):
         self.phonebook.lookup("missing")