mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
 | 
						|
from zerver.lib.test_classes import ZulipTestCase
 | 
						|
from zerver.views.compatibility import version_lt
 | 
						|
 | 
						|
class VersionTest(ZulipTestCase):
 | 
						|
    data = [case.split() for case in '''
 | 
						|
        1.2.3    <  1.2.4
 | 
						|
        1.2.3    =  1.2.3
 | 
						|
        1.4.1    >  1.2.3
 | 
						|
        1.002a   =  1.2a
 | 
						|
        1.2      <  1.2.3
 | 
						|
        1.2.3    ?  1.2-dev
 | 
						|
        1.2-dev  ?  1.2a
 | 
						|
        1.2a     ?  1.2rc3
 | 
						|
        1.2rc3   ?  1.2
 | 
						|
        1.2      ?  1.2-g0f1e2d3c4
 | 
						|
        10.1     >  1.2
 | 
						|
        0.17.18  <  16.2.96
 | 
						|
        9.10.11  <  16.2.96
 | 
						|
        15.1.95  <  16.2.96
 | 
						|
        16.2.96  =  16.2.96
 | 
						|
        20.0.103 >  16.2.96
 | 
						|
    '''.strip().split('\n')]
 | 
						|
 | 
						|
    def test_version_lt(self) -> None:
 | 
						|
        for ver1, cmp, ver2 in self.data:
 | 
						|
            msg = 'expected {} {} {}'.format(ver1, cmp, ver2)
 | 
						|
            if cmp == '<':
 | 
						|
                self.assertTrue(version_lt(ver1, ver2), msg=msg)
 | 
						|
                self.assertFalse(version_lt(ver2, ver1), msg=msg)
 | 
						|
            elif cmp == '=':
 | 
						|
                self.assertFalse(version_lt(ver1, ver2), msg=msg)
 | 
						|
                self.assertFalse(version_lt(ver2, ver1), msg=msg)
 | 
						|
            elif cmp == '>':
 | 
						|
                self.assertFalse(version_lt(ver1, ver2), msg=msg)
 | 
						|
                self.assertTrue(version_lt(ver2, ver1), msg=msg)
 | 
						|
            elif cmp == '?':
 | 
						|
                self.assertIsNone(version_lt(ver1, ver2), msg=msg)
 | 
						|
                self.assertIsNone(version_lt(ver2, ver1), msg=msg)
 | 
						|
            else:
 | 
						|
                assert False  # nocoverage
 | 
						|
 | 
						|
class CompatibilityTest(ZulipTestCase):
 | 
						|
    def test_compatibility(self) -> None:
 | 
						|
        result = self.client_get("/compatibility", HTTP_USER_AGENT='ZulipMobile/5.0')
 | 
						|
        self.assert_json_success(result)
 | 
						|
        result = self.client_get("/compatibility", HTTP_USER_AGENT='ZulipInvalid/5.0')
 | 
						|
        self.assert_json_error(result, "Client is too old")
 |