def test_calendar_selection(self): widget = Calendar(self.window, month=3, year=2011, day=10, maxdate=date(2013, 1, 1), mindate=date(2010, 1, 1)) widget.pack() self.assertEqual(widget.selection_get(), date(2011, 3, 10)) widget.selection_set(date(2012, 4, 11)) self.assertEqual(widget.selection_get(), date(2012, 4, 11)) self.assertEqual(widget._date, date(2012, 4, 1)) widget.selection_set(datetime(2012, 5, 11)) self.assertEqual(widget.selection_get(), date(2012, 5, 11)) self.assertNotIsInstance(widget.selection_get(), datetime) self.assertIsInstance(widget.selection_get(), date) widget.selection_set(datetime(2012, 5, 21).strftime('%x')) self.assertEqual(widget.selection_get(), date(2012, 5, 21)) self.assertNotIsInstance(widget.selection_get(), datetime) self.assertIsInstance(widget.selection_get(), date) widget.selection_set(date(2018, 4, 11)) self.assertEqual(widget.selection_get(), date(2013, 1, 1)) widget.selection_set(date(2001, 4, 11)) self.assertEqual(widget.selection_get(), date(2010, 1, 1)) widget.selection_clear() self.assertIsNone(widget.selection_get()) # test Swedish locale widget.destroy() widget = Calendar(self.window, locale='sv_SE') widget.pack() widget.selection_set(format_date(date(2012, 4, 11), 'short', 'sv_SE'))
def test_calendar_init(self): widget = Calendar(self.window) widget.pack() self.window.update() widget.destroy() widget = Calendar(self.window, font="Arial 14", selectmode='day', cursor="hand1", year=2018, month=2, day=5) widget.pack() self.window.update() self.assertEqual(widget.selection_get(), date(2018, 2, 5)) widget.destroy() widget = Calendar(self.window, year=2011, month=2, day=35) widget.pack() self.window.update() self.assertIsNone(widget.selection_get()) self.assertEqual(widget._date, date(2011, 2, 1)) widget.destroy() with self.assertRaises(ValueError): widget = Calendar(self.window, month=23) widget.pack() self.window.update() widget.destroy() with self.assertRaises(ValueError): widget = Calendar(self.window, borderwidth="e") widget.pack() self.window.update() widget.destroy() widget = Calendar(self.window, font="Arial 14", selectmode='day', cursor="hand1", year=2018, month=2, day=5) widget.pack() self.window.update() widget.destroy() widget = Calendar(self.window, selectmode='none', year=2015, month=1, background="black", foreground="white", key="a") widget.pack() self.window.update() self.assertIsNone(widget.selection_get()) self.assertEqual(widget._date, date(2015, 1, 1)) widget.destroy() with self.assertRaises(ValueError): widget = Calendar(self.window, selectmode='wrong') widget.pack() self.window.update() widget.destroy()
def test_calendar_init(self): widget = Calendar(self.window) widget.pack() self.window.update() widget.destroy() widget = Calendar(self.window, showweeknumbers=False) self.window.update() widget.destroy() today = format_date(date.today(), 'short') var = tk.StringVar(self.window, today) widget = Calendar(self.window, textvariable=var, month=3, year=2011, day=10) self.window.update() self.assertEqual(var.get(), today) self.assertEqual(widget.selection_get(), date.today()) widget.destroy() widget = Calendar(self.window, font="Arial 14", selectmode='day', cursor="hand1", year=2018, month=2, day=5) widget.pack() self.window.update() self.assertEqual(widget.selection_get(), date(2018, 2, 5)) self.assertEqual(widget.get_displayed_month(), (2, 2018)) w, d = widget._get_day_coords(date(2018, 2, 5)) self.assertEqual(widget._calendar[w][d].cget('text'), '5') widget.destroy() widget = Calendar(self.window, year=2011, month=2, day=35) widget.pack() self.window.update() self.assertIsNone(widget.selection_get()) self.assertEqual(widget._date, date(2011, 2, 1)) widget.destroy() with self.assertRaises(ValueError): widget = Calendar(self.window, month=23) widget.pack() self.window.update() widget.destroy() with self.assertRaises(ValueError): widget = Calendar(self.window, borderwidth="e") widget.pack() self.window.update() widget.destroy() with self.assertRaises(TypeError): widget = Calendar(self.window, weekenddays=7) widget.pack() self.window.update() widget.destroy() with self.assertRaises(ValueError): widget = Calendar(self.window, weekenddays="e") widget.pack() self.window.update() widget.destroy() with self.assertRaises(ValueError): widget = Calendar(self.window, weekenddays=[1]) widget.pack() self.window.update() widget.destroy() with self.assertRaises(ValueError): widget = Calendar(self.window, weekenddays=['a', 'b']) widget.pack() self.window.update() widget.destroy() with self.assertRaises(ValueError): widget = Calendar(self.window, weekenddays=[12, 3]) widget.pack() self.window.update() widget.destroy() with self.assertRaises(TypeError): widget = Calendar(self.window, maxdate="e") widget.pack() self.window.update() widget.destroy() widget = Calendar(self.window, mindate=datetime(2013, 5, 22, 10, 5), maxdate=datetime.today()) widget.pack() self.window.update() widget.destroy() with self.assertRaises(TypeError): widget = Calendar(self.window, mindate="e") widget.pack() self.window.update() widget.destroy() with self.assertRaises(ValueError): widget = Calendar(self.window, mindate=date(2018, 4, 5), maxdate=date(2018, 4, 4)) widget.pack() self.window.update() widget.destroy() with self.assertRaises(ValueError): widget = Calendar(self.window, firstweekday="e") widget.pack() self.window.update() widget.destroy() widget = Calendar(self.window, font="Arial 14", selectmode='day', cursor="hand1", year=2018, month=2, day=5) widget.pack() self.window.update() widget.destroy() widget = Calendar(self.window, selectmode='none', year=2015, month=1, background="black", foreground="white", key="a") widget.pack() self.window.update() self.assertIsNone(widget.selection_get()) self.assertEqual(widget._date, date(2015, 1, 1)) widget.destroy() with self.assertRaises(ValueError): widget = Calendar(self.window, selectmode='wrong') widget.pack() self.window.update() widget.destroy()
def test_calendar_textvariable(self): var = tk.StringVar(self.window) widget = Calendar(self.window, selectmode='day', year=2015, month=1, day=3, textvariable=var) widget.pack() self.window.update() self.assertEqual('', var.get()) self.assertEqual('', widget.get_date()) self.assertEqual(date(2015, 1, 1), widget._date) widget.selection_set(date(2018, 11, 21)) self.window.update() self.assertEqual(format_date(date(2018, 11, 21), 'short'), var.get()) self.assertEqual(format_date(date(2018, 11, 21), 'short'), widget.get_date()) widget.selection_set(None) self.window.update() self.assertEqual('', widget.get_date()) self.assertEqual('', var.get()) var.set(format_date(date(2014, 3, 2), 'short')) self.window.update() self.assertEqual(date(2014, 3, 2), widget.selection_get()) self.assertEqual(format_date(date(2014, 3, 2), 'short'), var.get()) self.assertEqual(format_date(date(2014, 3, 2), 'short'), widget.get_date()) try: var.set('a') except tk.TclError: # some versions of python raise an error because of the exception # raised inside the trace pass self.window.update() self.assertEqual(date(2014, 3, 2), widget.selection_get()) self.assertEqual(format_date(date(2014, 3, 2), 'short'), var.get()) self.assertEqual(format_date(date(2014, 3, 2), 'short'), widget.get_date()) var.set('') self.window.update() self.assertIsNone(widget.selection_get()) self.assertEqual('', var.get()) self.assertEqual('', widget.get_date()) var2 = tk.StringVar(widget, format_date(date(2011, 1, 21), 'short')) widget['textvariable'] = var2 self.window.update() self.assertEqual(widget.get_date(), var2.get()) self.assertEqual('', var.get()) widget.destroy() widget = Calendar(self.window, selectmode='day', locale='en_US', textvariable=var) widget.pack() self.window.update() widget.selection_set(date(2018, 1, 2)) self.assertEqual('1/2/18', widget.get_date()) widget['date_pattern'] = 'MM/dd/yyyy' self.assertEqual('01/02/2018', widget.get_date())
def test_calendar_init(self): widget = Calendar(self.window) widget.pack() self.window.update() widget.destroy() widget = Calendar(self.window, showweeknumbers=False) self.window.update() widget.destroy() today = format_date(date.today(), 'short') var = tk.StringVar(self.window, today) widget = Calendar(self.window, textvariable=var, month=3, year=2011, day=10) self.window.update() self.assertEqual(var.get(), today) self.assertEqual(widget.selection_get(), date.today()) widget.destroy() widget = Calendar(self.window, font="Arial 14", selectmode='day', cursor="hand1", year=2018, month=2, day=5) widget.pack() self.window.update() self.assertEqual(widget.selection_get(), date(2018, 2, 5)) widget.destroy() widget = Calendar(self.window, year=2011, month=2, day=35) widget.pack() self.window.update() self.assertIsNone(widget.selection_get()) self.assertEqual(widget._date, date(2011, 2, 1)) widget.destroy() with self.assertRaises(ValueError): widget = Calendar(self.window, month=23) widget.pack() self.window.update() widget.destroy() with self.assertRaises(ValueError): widget = Calendar(self.window, borderwidth="e") widget.pack() self.window.update() widget.destroy() widget = Calendar(self.window, font="Arial 14", selectmode='day', cursor="hand1", year=2018, month=2, day=5) widget.pack() self.window.update() widget.destroy() widget = Calendar(self.window, selectmode='none', year=2015, month=1, background="black", foreground="white", key="a") widget.pack() self.window.update() self.assertIsNone(widget.selection_get()) self.assertEqual(widget._date, date(2015, 1, 1)) widget.destroy() with self.assertRaises(ValueError): widget = Calendar(self.window, selectmode='wrong') widget.pack() self.window.update() widget.destroy()
class Funçoes(Validadores): def conecta_bd(self): self.conn = sqlite3.connect("AGENDAMENTOS.db") self.cursor = self.conn.cursor() print("Conectando ao banco de dados") def desconecta_bd(self): self.conn.close() print("Desconectando ao banco de dados") def montaTabelas(self): self.conecta_bd() ### Criar tabela self.cursor.execute(""" CREATE TABLE IF NOT EXISTS Agendas ( COD INTEGER PRIMARY KEY, NOME_CLIENTE CHAR(40) NOT NULL, TELEFONE INTEGER(20), DATA date, HORA time ); """) self.conn.commit() print("Banco de dados criado") self.desconecta_bd() def Calendario(self): self.cal = Calendar(self.Main, fg='black', locale='pt_br') self.cal.place(relx=0.75, rely=0.08) self.btsalva = Button(self.Main, text='Salvar', command=self.Salvar, bg='#00FF7F') self.btsalva.place(relx=0.75, rely=0.27, relwidth=0.15) self.bt_fechar = Button(self.Main, text='Sair', command=self.Fechar, bg='red') self.bt_fechar.place(relx=0.90, rely=0.27, relwidth=0.05) def Fechar(self): self.cal.destroy() self.btsalva.destroy() self.bt_fechar.destroy() def Agendar(self): self.conecta_bd() self.montaTabelas() self.entry_cod = Entry(self.Main) self.entry_cod.place(relx=0.15, rely=0.05, relwidth=0.04) self.entrynome = Entry(self.Main) self.entrynome.place(relx=0.25, rely=0.10, relwidth=0.40) self.lbnome = Label(self.Main, text='Nome', background='white') self.lbnome.place(relx=0.15, rely=0.10) self.entrytele = Entry(self.Main, validate='key', validatecommand=self.vdTele) self.entrytele.place(relx=0.25, rely=0.20, relwidth=0.40) self.lbtele = Label(self.Main, text='Telefone', background='white') self.lbtele.place(relx=0.15, rely=0.20) self.entryhora = Entry(self.Main, validate='key', validatecommand=self.vdhora) self.entryhora.place(relx=0.25, rely=0.30, relwidth=0.05) self.lbhora = Label(self.Main, text='Hora', background='white') self.lbhora.place(relx=0.15, rely=0.30) self.entrydata = Entry(self.Main) self.entrydata.place(relx=0.40, rely=0.30, relwidth=0.10) self.lbdata = Label(self.Main, text='Data', background='white') self.lbdata.place(relx=0.35, rely=0.30) self.bt_calendario = Button(self.Main, text='Calendario', command=self.Calendario) self.bt_calendario.place(relx=0.55, rely=0.30) self.bt_altera = Button(self.Main, text='Alterar', command=self.Alteraagenda) self.bt_altera.place(relx=0.65, rely=0.30) def Salvar(self): dataini = self.cal.get_date() self.entrydata.delete(0, END) self.entrydata.insert(END, dataini) self.conecta_bd() self.conn.execute( ''' insert into Agendas (NOME_CLIENTE,TELEFONE,DATA,HORA) values (?,?,?,?)''', (self.entrynome.get(), self.entrytele.get(), self.entrydata.get(), self.entryhora.get())) self.conn.commit() self.desconecta_bd() self.limpa_cliente() self.entrynome.destroy() self.lbnome.destroy() self.entryhora.destroy() self.lbhora.destroy() self.entrytele.destroy() self.lbtele.destroy() self.entrydata.destroy() self.lbdata.destroy() self.bt_calendario.destroy() self.btsalva.destroy() self.cal.destroy() self.entry_cod.destroy() self.bt_altera.destroy() self.bt_fechar.destroy() self.Tarefas() def OnDoubleClick(self, event): self.limpa_cliente() self.listaCli.selection() for n in self.listaCli.selection(): col1, col2, col3, col4, col5 = self.listaCli.item(n, 'values') self.entry_cod.insert(END, col1) self.entrynome.insert(END, col2) self.entrytele.insert(END, col3) self.entrydata.insert(END, col4) self.entryhora.insert(END, col5) def Tarefas(self): self.listaCli.delete(*self.listaCli.get_children()) self.conecta_bd() dia = self.data_e_hora = strftime('%d/%m/%Y') lista = self.conn.execute(''' SELECT * FROM Agendas where data like ('%s')ORDER BY NOME_CLIENTE ASC''' % dia) for i in lista: self.listaCli.insert("", END, values=i) self.desconecta_bd() self.limpa_cliente() def VerMes(self): self.Agendar() self.listaCli.delete(*self.listaCli.get_children()) self.conecta_bd() meses = self.data_e_hora = strftime('/%m/%Y') mes = ('%') + meses lista = self.conn.execute(''' SELECT * FROM Agendas where data like ('%s')ORDER BY data ASC''' % mes) for i in lista: self.listaCli.insert("", END, values=i) self.desconecta_bd() def Notas(self): print('Atualizando') def Validaentrada(self): self.vdhora = (self.root.register(self.ValidaHora), "%P") self.vdTele = (self.root.register(self.ValidaTele), "%P") def Alteraagenda(self): self.conecta_bd() self.conn.execute( '''UPDATE Agendas set NOME_CLIENTE=?,TELEFONE=?,DATA=?,HORA=? where COD=?''', (self.entrynome.get(), self.entrytele.get(), self.entrydata.get(), self.entryhora.get(), self.entry_cod.get())) self.conn.commit() self.desconecta_bd() self.limpa_cliente() self.Tarefas() def limpa_cliente(self): self.entry_cod.delete(0, END) self.entrynome.delete(0, END) self.entrytele.delete(0, END) self.entrydata.delete(0, END) self.entryhora.delete(0, END)