@@ -2422,35 +2422,63 @@ def test_readonly(self, mock_cluster_resp_ok):
2422
2422
def test_geoadd (self , r ):
2423
2423
values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2424
2424
(2.1873744593677 , 41.406342043777 , 'place2' )
2425
-
2426
- assert r .geoadd ('barcelona' , * values ) == 2
2425
+ assert r .geoadd ('barcelona' , values ) == 2
2427
2426
assert r .zcard ('barcelona' ) == 2
2428
2427
2428
+ @skip_if_server_version_lt ('6.2.0' )
2429
+ def test_geoadd_nx (self , r ):
2430
+ values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2431
+ (2.1873744593677 , 41.406342043777 , 'place2' )
2432
+ assert r .geoadd ('a' , values ) == 2
2433
+ values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2434
+ (2.1873744593677 , 41.406342043777 , 'place2' ) + \
2435
+ (2.1804738294738 , 41.405647879212 , 'place3' )
2436
+ assert r .geoadd ('a' , values , nx = True ) == 1
2437
+ assert r .zrange ('a' , 0 , - 1 ) == [b'place3' , b'place2' , b'place1' ]
2438
+
2439
+ @skip_if_server_version_lt ('6.2.0' )
2440
+ def test_geoadd_xx (self , r ):
2441
+ values = (2.1909389952632 , 41.433791470673 , 'place1' )
2442
+ assert r .geoadd ('a' , values ) == 1
2443
+ values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2444
+ (2.1873744593677 , 41.406342043777 , 'place2' )
2445
+ assert r .geoadd ('a' , values , xx = True ) == 0
2446
+ assert r .zrange ('a' , 0 , - 1 ) == \
2447
+ [b'place1' ]
2448
+
2449
+ @skip_if_server_version_lt ('6.2.0' )
2450
+ def test_geoadd_ch (self , r ):
2451
+ values = (2.1909389952632 , 41.433791470673 , 'place1' )
2452
+ assert r .geoadd ('a' , values ) == 1
2453
+ values = (2.1909389952632 , 31.433791470673 , 'place1' ) + \
2454
+ (2.1873744593677 , 41.406342043777 , 'place2' )
2455
+ assert r .geoadd ('a' , values , ch = True ) == 2
2456
+ assert r .zrange ('a' , 0 , - 1 ) == \
2457
+ [b'place1' , b'place2' ]
2458
+
2429
2459
@skip_if_server_version_lt ('3.2.0' )
2430
2460
def test_geoadd_invalid_params (self , r ):
2431
2461
with pytest .raises (exceptions .RedisError ):
2432
- r .geoadd ('barcelona' , * (1 , 2 ))
2462
+ r .geoadd ('barcelona' , (1 , 2 ))
2433
2463
2434
2464
@skip_if_server_version_lt ('3.2.0' )
2435
2465
def test_geodist (self , r ):
2436
2466
values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2437
2467
(2.1873744593677 , 41.406342043777 , 'place2' )
2438
-
2439
- assert r .geoadd ('barcelona' , * values ) == 2
2468
+ assert r .geoadd ('barcelona' , values ) == 2
2440
2469
assert r .geodist ('barcelona' , 'place1' , 'place2' ) == 3067.4157
2441
2470
2442
2471
@skip_if_server_version_lt ('3.2.0' )
2443
2472
def test_geodist_units (self , r ):
2444
2473
values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2445
2474
(2.1873744593677 , 41.406342043777 , 'place2' )
2446
-
2447
- r .geoadd ('barcelona' , * values )
2475
+ r .geoadd ('barcelona' , values )
2448
2476
assert r .geodist ('barcelona' , 'place1' , 'place2' , 'km' ) == 3.0674
2449
2477
2450
2478
@skip_if_server_version_lt ('3.2.0' )
2451
2479
def test_geodist_missing_one_member (self , r ):
2452
2480
values = (2.1909389952632 , 41.433791470673 , 'place1' )
2453
- r .geoadd ('barcelona' , * values )
2481
+ r .geoadd ('barcelona' , values )
2454
2482
assert r .geodist ('barcelona' , 'place1' , 'missing_member' , 'km' ) is None
2455
2483
2456
2484
@skip_if_server_version_lt ('3.2.0' )
@@ -2462,8 +2490,7 @@ def test_geodist_invalid_units(self, r):
2462
2490
def test_geohash (self , r ):
2463
2491
values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2464
2492
(2.1873744593677 , 41.406342043777 , 'place2' )
2465
-
2466
- r .geoadd ('barcelona' , * values )
2493
+ r .geoadd ('barcelona' , values )
2467
2494
assert r .geohash ('barcelona' , 'place1' , 'place2' , 'place3' ) == \
2468
2495
['sp3e9yg3kd0' , 'sp3e9cbc3t0' , None ]
2469
2496
@@ -2472,8 +2499,7 @@ def test_geohash(self, r):
2472
2499
def test_geopos (self , r ):
2473
2500
values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2474
2501
(2.1873744593677 , 41.406342043777 , 'place2' )
2475
-
2476
- r .geoadd ('barcelona' , * values )
2502
+ r .geoadd ('barcelona' , values )
2477
2503
# redis uses 52 bits precision, hereby small errors may be introduced.
2478
2504
assert r .geopos ('barcelona' , 'place1' , 'place2' ) == \
2479
2505
[(2.19093829393386841 , 41.43379028184083523 ),
@@ -2493,7 +2519,7 @@ def test_geosearch(self, r):
2493
2519
values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2494
2520
(2.1873744593677 , 41.406342043777 , b'\x80 place2' ) + \
2495
2521
(2.583333 , 41.316667 , 'place3' )
2496
- r .geoadd ('barcelona' , * values )
2522
+ r .geoadd ('barcelona' , values )
2497
2523
assert r .geosearch ('barcelona' , longitude = 2.191 ,
2498
2524
latitude = 41.433 , radius = 1000 ) == [b'place1' ]
2499
2525
assert r .geosearch ('barcelona' , longitude = 2.187 ,
@@ -2515,7 +2541,7 @@ def test_geosearch_member(self, r):
2515
2541
values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2516
2542
(2.1873744593677 , 41.406342043777 , b'\x80 place2' )
2517
2543
2518
- r .geoadd ('barcelona' , * values )
2544
+ r .geoadd ('barcelona' , values )
2519
2545
assert r .geosearch ('barcelona' , member = 'place1' , radius = 4000 ) == \
2520
2546
[b'\x80 place2' , b'place1' ]
2521
2547
assert r .geosearch ('barcelona' , member = 'place1' , radius = 10 ) == \
@@ -2534,7 +2560,7 @@ def test_geosearch_member(self, r):
2534
2560
def test_geosearch_sort (self , r ):
2535
2561
values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2536
2562
(2.1873744593677 , 41.406342043777 , 'place2' )
2537
- r .geoadd ('barcelona' , * values )
2563
+ r .geoadd ('barcelona' , values )
2538
2564
assert r .geosearch ('barcelona' , longitude = 2.191 ,
2539
2565
latitude = 41.433 , radius = 3000 , sort = 'ASC' ) == \
2540
2566
[b'place1' , b'place2' ]
@@ -2547,7 +2573,7 @@ def test_geosearch_sort(self, r):
2547
2573
def test_geosearch_with (self , r ):
2548
2574
values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2549
2575
(2.1873744593677 , 41.406342043777 , 'place2' )
2550
- r .geoadd ('barcelona' , * values )
2576
+ r .geoadd ('barcelona' , values )
2551
2577
2552
2578
# test a bunch of combinations to test the parse response
2553
2579
# function.
@@ -2618,7 +2644,7 @@ def test_geosearchstore(self, r):
2618
2644
values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2619
2645
(2.1873744593677 , 41.406342043777 , 'place2' )
2620
2646
2621
- r .geoadd ('barcelona' , * values )
2647
+ r .geoadd ('barcelona' , values )
2622
2648
r .geosearchstore ('places_barcelona' , 'barcelona' ,
2623
2649
longitude = 2.191 , latitude = 41.433 , radius = 1000 )
2624
2650
assert r .zrange ('places_barcelona' , 0 , - 1 ) == [b'place1' ]
@@ -2629,7 +2655,7 @@ def test_geosearchstore_dist(self, r):
2629
2655
values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2630
2656
(2.1873744593677 , 41.406342043777 , 'place2' )
2631
2657
2632
- r .geoadd ('barcelona' , * values )
2658
+ r .geoadd ('barcelona' , values )
2633
2659
r .geosearchstore ('places_barcelona' , 'barcelona' ,
2634
2660
longitude = 2.191 , latitude = 41.433 ,
2635
2661
radius = 1000 , storedist = True )
@@ -2641,7 +2667,7 @@ def test_georadius(self, r):
2641
2667
values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2642
2668
(2.1873744593677 , 41.406342043777 , b'\x80 place2' )
2643
2669
2644
- r .geoadd ('barcelona' , * values )
2670
+ r .geoadd ('barcelona' , values )
2645
2671
assert r .georadius ('barcelona' , 2.191 , 41.433 , 1000 ) == [b'place1' ]
2646
2672
assert r .georadius ('barcelona' , 2.187 , 41.406 , 1000 ) == [b'\x80 place2' ]
2647
2673
@@ -2650,15 +2676,15 @@ def test_georadius_no_values(self, r):
2650
2676
values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2651
2677
(2.1873744593677 , 41.406342043777 , 'place2' )
2652
2678
2653
- r .geoadd ('barcelona' , * values )
2679
+ r .geoadd ('barcelona' , values )
2654
2680
assert r .georadius ('barcelona' , 1 , 2 , 1000 ) == []
2655
2681
2656
2682
@skip_if_server_version_lt ('3.2.0' )
2657
2683
def test_georadius_units (self , r ):
2658
2684
values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2659
2685
(2.1873744593677 , 41.406342043777 , 'place2' )
2660
2686
2661
- r .geoadd ('barcelona' , * values )
2687
+ r .geoadd ('barcelona' , values )
2662
2688
assert r .georadius ('barcelona' , 2.191 , 41.433 , 1 , unit = 'km' ) == \
2663
2689
[b'place1' ]
2664
2690
@@ -2668,7 +2694,7 @@ def test_georadius_with(self, r):
2668
2694
values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2669
2695
(2.1873744593677 , 41.406342043777 , 'place2' )
2670
2696
2671
- r .geoadd ('barcelona' , * values )
2697
+ r .geoadd ('barcelona' , values )
2672
2698
2673
2699
# test a bunch of combinations to test the parse response
2674
2700
# function.
@@ -2696,7 +2722,7 @@ def test_georadius_count(self, r):
2696
2722
values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2697
2723
(2.1873744593677 , 41.406342043777 , 'place2' )
2698
2724
2699
- r .geoadd ('barcelona' , * values )
2725
+ r .geoadd ('barcelona' , values )
2700
2726
assert r .georadius ('barcelona' , 2.191 , 41.433 , 3000 , count = 1 ) == \
2701
2727
[b'place1' ]
2702
2728
assert r .georadius ('barcelona' , 2.191 , 41.433 , 3000 ,
@@ -2708,7 +2734,7 @@ def test_georadius_sort(self, r):
2708
2734
values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2709
2735
(2.1873744593677 , 41.406342043777 , 'place2' )
2710
2736
2711
- r .geoadd ('barcelona' , * values )
2737
+ r .geoadd ('barcelona' , values )
2712
2738
assert r .georadius ('barcelona' , 2.191 , 41.433 , 3000 , sort = 'ASC' ) == \
2713
2739
[b'place1' , b'place2' ]
2714
2740
assert r .georadius ('barcelona' , 2.191 , 41.433 , 3000 , sort = 'DESC' ) == \
@@ -2719,7 +2745,7 @@ def test_georadius_store(self, r):
2719
2745
values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2720
2746
(2.1873744593677 , 41.406342043777 , 'place2' )
2721
2747
2722
- r .geoadd ('barcelona' , * values )
2748
+ r .geoadd ('barcelona' , values )
2723
2749
r .georadius ('barcelona' , 2.191 , 41.433 , 1000 , store = 'places_barcelona' )
2724
2750
assert r .zrange ('places_barcelona' , 0 , - 1 ) == [b'place1' ]
2725
2751
@@ -2729,7 +2755,7 @@ def test_georadius_store_dist(self, r):
2729
2755
values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2730
2756
(2.1873744593677 , 41.406342043777 , 'place2' )
2731
2757
2732
- r .geoadd ('barcelona' , * values )
2758
+ r .geoadd ('barcelona' , values )
2733
2759
r .georadius ('barcelona' , 2.191 , 41.433 , 1000 ,
2734
2760
store_dist = 'places_barcelona' )
2735
2761
# instead of save the geo score, the distance is saved.
@@ -2741,7 +2767,7 @@ def test_georadiusmember(self, r):
2741
2767
values = (2.1909389952632 , 41.433791470673 , 'place1' ) + \
2742
2768
(2.1873744593677 , 41.406342043777 , b'\x80 place2' )
2743
2769
2744
- r .geoadd ('barcelona' , * values )
2770
+ r .geoadd ('barcelona' , values )
2745
2771
assert r .georadiusbymember ('barcelona' , 'place1' , 4000 ) == \
2746
2772
[b'\x80 place2' , b'place1' ]
2747
2773
assert r .georadiusbymember ('barcelona' , 'place1' , 10 ) == [b'place1' ]
0 commit comments