Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/CeibalEncuesta/gtk2/CeibalEncuesta/tests.py
blob: e1c1f3d24df9e552eb50a70e311b2de3a888fa29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# -*- coding: utf-8 -*-
import unittest
import os
import shutil
import glob

from CeibalEncuesta import CeibalEncuesta
from Globales import Encuesta, GrupoDeEncuestados, Encuestado

WORKPATH = 'test_files'
TEMPPATH = os.path.join(WORKPATH, "fixture_enc_simple.encuesta")


class MockDialog(object):

    def run(self):
        pass

    def destroy(self):
        pass


class MockPanel(object):

    def __init__(self):
        self.encuestados = 'dadsa'
        self.encuesta = 'blah'


class MockInfoWidget(object):

    def get_info(self):
        return {'poll_name': 'test_poll'}


class MockCeibalEncuesta(CeibalEncuesta):

    def __init__(self, fixture):
        self.panel = MockPanel()
        self.infowidget = MockInfoWidget()
        self._CeibalEncuesta__save_json = self._save_json
        self.path = TEMPPATH
        self.backup_path = os.path.join(WORKPATH, fixture)

    def _save_json(self, path=None):
        return ''

    def _alert_dialog(self, parent_window, label):
        return MockDialog()


class NoBorraTempAlExportarTest(unittest.TestCase):
    """Este test hace referencia al issue #4143"""

    def setUp(self):
        self.fixture_tmp = 'fixture_tmp.encuesta'

    def test_exporta_y_no_borra_temp(self):
        fixture = 'fixture_enc_simple.encuesta'
        fixture_tmp_full = WORKPATH + '/' + self.fixture_tmp
        shutil.copy2(WORKPATH + '/' + fixture, fixture_tmp_full)

        ce = MockCeibalEncuesta(self.fixture_tmp)
        ce._CeibalEncuesta__save_results(widget=None, chosen_path=WORKPATH)

        self.assertTrue(os.path.exists(fixture_tmp_full))

    def tearDown(self):
        for f in glob.glob(WORKPATH + '/' + '*.poll_result'):
            os.remove(f)

        if os.path.exists(WORKPATH + '/' + self.fixture_tmp):
            os.remove(WORKPATH + '/' + self.fixture_tmp)


class ComportamientoFinalizar(unittest.TestCase):
    """Este test hace referencia al issue #4144"""

    def test_queda_finalizada_al_finalizar(self):

        encuesta = Encuesta()
        self.assertFalse(encuesta.finalizada)

        encuesta.finalizar()

        self.assertTrue(encuesta.finalizada)


class GrupoDeEncuestadosTests(unittest.TestCase):

    def test_tipo_de_grupo(self):

        gde = GrupoDeEncuestados()
        gde.set_tipo(GrupoDeEncuestados.TIPO_ORIGINAL)

        self.assertEqual(GrupoDeEncuestados.TIPO_ORIGINAL, gde.tipo)

        gde = GrupoDeEncuestados()
        gde.set_tipo(GrupoDeEncuestados.TIPO_SUSTITUTO)

        self.assertEqual(GrupoDeEncuestados.TIPO_SUSTITUTO, gde.tipo)

    def test_tipo_de_grupo_como_string(self):

        gde = GrupoDeEncuestados()
        gde.set_tipo(GrupoDeEncuestados.TIPO_ORIGINAL)

        self.assertEqual('original', gde.get_tipo())

        gde = GrupoDeEncuestados()
        gde.set_tipo(GrupoDeEncuestados.TIPO_SUSTITUTO)

        self.assertEqual('sustituto', gde.get_tipo())

class EncuestaTests(unittest.TestCase):

    def test_una_encuesta_pertenece_a_grupo_de_encuestados(self):
        encuesta = Encuesta()
        grupo = GrupoDeEncuestados()
        grupo.set_tipo(GrupoDeEncuestados.TIPO_ORIGINAL)
        encuesta.set_grupo(grupo)

        self.assertEqual(encuesta.grupo.get_tipo(), 'original')


class EncuestadoTests(unittest.TestCase):

    def test_get_tipo_grupo(self):
        encuestado_str = u"1101236 MONTEVIDéO A 236 2 A 1 0"

        encuestado = Encuestado(encuestado_str)
        tipo_grupo = encuestado.get_tipo_grupo()
        self.assertEqual(1, tipo_grupo)

        encuestado_str = "1101236 MONTEVíDEO H J K 236 2 B 1 46415922 Matías Test"

        encuestado = Encuestado(encuestado_str)
        tipo_grupo = encuestado.get_tipo_grupo()
        self.assertEqual(1, tipo_grupo)

    def test_get_id(self):
        encuestado_str = "1101236 Río negro A 236 2 A 1 0"

        encuestado = Encuestado(encuestado_str)
        encuestado_id = encuestado.get_id()

        expected = encuestado_str
        self.assertEqual(expected, encuestado_id)

if __name__ == '__main__':
    unittest.main()