-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathTODO.txt
1117 lines (1020 loc) · 52.9 KB
/
TODO.txt
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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
PRIORETIZED:
=================================================
(21.12.2011.)
(+) * (Jurko) Prepare for the initial forked project release.
(+) * Add todo list.
(+) * Document how to access this forked project's development sources &
(+) released files.
(+) * Jurko's Mercurial repository hosted at BitBucket and accessible
(+) from 'https://bitbucket.org/jurko/suds'.
(+) * Already documented in README.
(+) * Add more details to HACKING.
(+) * Suds library Python 3 patches hosted in a Mercurial patch queue
(+) repository at BitBucket and accessible from
(+) 'https://bitbucket.org/bernh/suds-python-3-patches'.
(+) * Already documented in HACKING.
(+) * (Jurko) Minor stylistic changes & typo corrections.
(+) * Code.
(+) * 'tranparent' --> 'transparent'.
(+) * 'if tns' --> 'if tns'.
(+) * 'docuemnt' --> 'document'.
(+) * '('restriction', 'any', 'list',)' --> '('restriction', 'any',
(+) 'list')'.
(+) * And other unnecessary trailing tuple commas.
(+) * 'Qualfied' --> 'Qualified'.
(+) * 'Resolveds' --> 'Resolves'.
(+) * 'describe a port and it's list of methods' --> 'describe a port
(+) and its list of methods'.
(+) * 'dependancies' --> 'dependencies'.
(+) * 'imcoming' --> 'incoming'.
(+) * 'relavent' --> 'relevant'.
(+) * 'indicat' --> 'inidcat'.
(22.12.2011.)
(+) * (Jurko) Prepare for the initial forked project release.
(+) * Rename top level project documentation files to use the .txt extension
(+) to make them friendlier to Windows users.
(+) * Research release procedure.
(+) * Open PyPI account.
(+) * How to prepare a source distribution package.
(+) * Change author information.
(+) * Include tests.
(+) * Include all the top-level documentation files.
(+) * 'README'.
(+) * 'LICENSE'.
(+) * 'HACKING'.
(+) * 'TODO'.
(+) * Note the original project author in the package description.
(+) * Include correct license information.
(+) * See what the difference between author and maintainer
(+) information is and where it can be seen.
(+) * Try using 'setuptools_hg' to simplify specifying the project
(+) sources.
(+) * Failed when used under Python 3.
(+) * How to upload the prepared distribution packages.
(+) * Should upload a source distribution only.
(23.12.2011.)
(+) * (Jurko) Prepare for the initial forked project release.
(+) * Research release procedure.
(+) * How to upload the prepared distribution packages.
(+) * PyPI.
(24.12.2011.)
(+) * (Jurko) Prepare for the initial forked project release.
(+) * Research release procedure.
(+) * How to upload the prepared distribution packages.
(+) * BitBucket.
(+) * Document the project's official download URL.
(+) * Document how to access this forked project's development sources &
(+) released files.
(+) * Released project packages accessible from PyPI & BitBucket.
(+) * Installing the project using distribute or pip.
(+) * Document release procedure.
(+) * Version identification.
(+) * Remove the '(development)' suffix for official release builds.
(+) * Format '<base-suds-version> jurko #', e.g. '0.4.1 jurko 1'.
(+) * Tag in Hg.
(+) * Name the tag like 'release-<version-info>', e.g.
(+) 'release-0.4.1 jurko 1'.
(+) * Prepare official releases based only on tagged commits.
(+) * Prepare source distribution package, register the new release
(+) at PyPI and upload the prepared source package.
(+) * Run 'setup.py sdist register upload'.
(+) * Upload the prepared source package to the project site.
(+) * Archive the prepared source release locally if needed.
(+) * Next development version identification.
(+) * Bump up the forked project version counter.
(+) * Add back the '(development)' suffix.
(+) * Commit all local changes.
(+) * (Jurko) Constructing a SOAP request containing data stored in a sequence
(+) inside a choice.
(+) * Test scenario (syntax not precise).
(+) <choice>
(+) <element "a" - string />
(+) <element "s">
(+) <sequence>
(+) <element "s1" - string />
(+) <element "s2" - string />
(+) </sequence>
(+) </element>
(+) </choice>
(+) * When 's' is None and 'a' is not - 'a' should be used.
(+) * When 'a' is None and 's' is not - 's' should be used.
(+) * When 's' is used, all of its subelements should be used independent of
(+) whether they are None or not.
(+) * Add related test.
(+) * (Jurko) Prepare the '0.4.1 jurko 1' release.
(+) * Follow the documented release procedure.
(+) * Update version information.
(+) * Tag in Hg.
(+) * Upload the source package.
(+) * Project site.
(+) * PyPI.
(+) * (Jurko) Fix getting a suds.client object's string representation when the
(+) client is initialized with the following WSDL. Calling 'str(client)'
(+) reports 'IndexError: list index out of range'.
(+) * WSDL.
(+) <?xml version='1.0' encoding='UTF-8'?>
(+) <wsdl:definitions targetNamespace="my-namespace"
(+) xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
(+) xmlns:ns="my-namespace"
(+) xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
(+) <wsdl:types>
(+) <xsd:schema targetNamespace="my-namespace"
(+) elementFormDefault="qualified"
(+) attributeFormDefault="unqualified"
(+) xmlns:xsd="http://www.w3.org/2001/XMLSchema">
(+) <xsd:element name="Elemento">
(+) <xsd:complexType>
(+) <xsd:sequence>
(+) <xsd:element name="x1" type="xsd:string" />
(+) <xsd:element name="x2">
(+) <xsd:complexType>
(+) <xsd:choice>
(+) <xsd:element name="u1" type="xsd:string" />
(+) <xsd:element name="u2" type="xsd:string" />
(+) <xsd:element name="u3" type="xsd:string" />
(+) </xsd:choice>
(+) </xsd:complexType>
(+) </xsd:element>
(+) <xsd:element name="x3" type="xsd:string" />
(+) </xsd:sequence>
(+) </xsd:complexType>
(+) </xsd:element>
(+) </xsd:schema>
(+) </wsdl:types>
(+) <wsdl:message name="fRequestMessage">
(+) <wsdl:part name="parameters" element="ns:Elemento" />
(+) </wsdl:message>
(+) <wsdl:portType name="dummyPortType">
(+) <wsdl:operation name="f">
(+) <wsdl:input message="ns:fRequestMessage" />
(+) </wsdl:operation>
(+) </wsdl:portType>
(+) <wsdl:binding name="dummy" type="ns:dummyPortType">
(+) <soap:binding style="document"
(+) transport="http://schemas.xmlsoap.org/soap/http" />
(+) <wsdl:operation name="f">
(+) <soap:operation soapAction="f" style="document" />
(+) <wsdl:input><soap:body use="literal" /></wsdl:input>
(+) <wsdl:output><soap:body use="literal" /></wsdl:output>
(+) </wsdl:operation>
(+) </wsdl:binding>
(+) <wsdl:service name="dummy">
(+) <wsdl:port name="dummy" binding="ns:dummy">
(+) <soap:address location="https://localhost/dummy" />
(+) </wsdl:port>
(+) </wsdl:service>
(+) </wsdl:definitions>
(+) * Research.
(+) * Caused by undocumented suds.client.Client behaviour - it was
(+) expecting a specifically formatted suds.__build__ string which was
(+) not the case with the forked project release.
(+) * Add a test.
(+) * Fix.
(+) * Plan preparing a patched release.
(+) * (Jurko) Prepare the '0.4.1 jurko 2' release.
(+) * Update release notes.
(+) * Follow the documented release procedure.
(+) * Update version information.
(+) * Tag in Hg.
(+) * Upload the source package.
(+) * Project site.
(+) * PyPI.
(25.12.2011.)
(+) * (Jurko) Printing out a list of function parameters should not print an
(+) additional trailing comma after the last parameter.
(+) * Research.
(+) * suds.servicedefinition.ServiceDescription.description() code needs
(+) to be changed.
(+) * Prepare test.
(+) * Update code.
(+) * (Jurko) 'suds.xsd.xsbasic.Enumeration' objects should list their value in
(+) their string representation.
(+) * Research.
(+) * Prepare test.
(+) * Update code.
(+) * (Jurko) 'suds.sudsobject.Metadata' __unicode__()/__str__()/__repr__()
(+) functions should not raise an AttributeError.
(+) * Research.
(+) * There should be no need to access a 'suds.sudsobject.Metadata'
(+) object's __metadata__ member as done for 'suds.sudsobjects.Facade'
(+) class instances.
(+) * Prepare test.
(+) * Update code.
(26.12.2011.)
(+) * (Jurko) Clean up suds.xsd.sxbasic.TypedContent.resolve().
(+) * Research.
(+) * Base class resolve() behaviour.
(+) * Other resolve() functions in suds.
(+) * 'resolve()' related caching.
(+) * Clean up the SchemaObject resolve() implementations.
(+) * Caching not needed in TypedContent base classes.
(+) * Document.
(+) * Returns the same XSD node when the node does not have an
(+) explicitly specified external type.
(+) * When called for an XSD node with an explicitly specified external
(+) type returns that type's XSD node.
(+) * (Jurko) Clean up suds.xsd.sxbasic.TypedContent.resolve().
(+) * Research WSDL structure related to the resolving type references.
(+) * 'type'.
(+) * 'ref'.
(+) * Prepare additional resolve() tests.
(+) * 'ref'.
(+) * Valid.
(+) * Recursive.
(+) * Invalid.
(+) * References to nodes referencing other nodes.
(+) * There seems to be no way to do this in WSDL so seems no
(+) reason to keep the complicated and potentially buggy
(+) recursive resolve() implementation.
(+) * Refactor the resolve() implementation to remove recursion.
(+) * Todo items obsoleted by this refactoring.
(+) * Prevent possible endless resolve() loops due to resolve()
(+) directly or indirectly returning the same TypedContent
(+) instance.
(+) * Refactor to cache the final resolved type instead of a possibly only
(+) partially resolved one when resolving without allowing resolving to
(+) builtin types.
(+) * Research.
(+) * Prepare test.
(+) * Update code.
(+) * (Jurko) Check and remove detected potential unused imports if they are no
(+) longer needed.
(+) * splitPrefix.
(+) * DefinitionsReader.
(+) * (Jurko) Prepare the '0.4.1 jurko 3' release.
(+) * Update release notes.
(+) * Follow the documented release procedure.
(+) * Update version information.
(+) * Tag in Hg.
(+) * Upload the source package.
(+) * Project site.
(+) * PyPI.
(+) * (Jurko) Look into suds.xsd.sxbase.SchemaObject.unbounded(). It seems to
(+) return True even when the object is bounded with a max value greater than
(+) 1.
(+) * Research.
(+) * Add tests.
(+) * 'min'.
(+) * 'max'.
(+) * 'optional'.
(+) * 'required'.
(+) * 'unbounded'.
(+) * Update code - rename unbounded to multi_occurrence.
(27.12.2011.)
(+) * (Jurko) Get calling a web service operation taking no parameters to work
(+) correctly.
(+) * Research.
(+) * Seems to work fine. The original problem triggering this task
(+) seems to have been caused by an invalid WSDL.
(+) * Add a task to add more detailed test cases for this.
(17.04.2012.)
(+) * (Jurko) Merge upstream changes from the original suds development
(+) repository.
(+) * (Jurko) Update embedded author values so they do not include non-ASCII
(+) characters causing problems with the 'distribute' based setup procedure
(+) which erroneously assumes they have been prepared using the user's local
(+) code-page.
(+) * (Jurko) Process received pull requests on BitBucket.
(+) * (Jurko) Prepare the '0.4.1 jurko 4' release.
(+) * Update release notes.
(+) * Follow the documented release procedure.
(+) * Update version information.
(+) * Tag in Hg.
(+) * Upload the source package.
(+) * Project site.
(+) * PyPI.
(28.02.2013.)
(+) * (Jurko) Merge changes prepared by Juraj Ivanèiæ.
(+) * Update the original Hg repository containing Python 3 related fixes.
(+) * (Jurko) Process received pull requests.
(01.03.2013.)
(+) * (Jurko) Sync with external related repositories.
(+) * 'https://bitbucket.org/palday/suds'.
(27.03.2013.)
(+) * (Jurko) Fix buggy Python 3 support patch related to reading the cache
(+) version.
(+) * The cache version file should be read as a text and not as a binary
(+) file.
(+) * (Jurko) Fix test_enumeration_type_string_should_contain_its_value test
(+) under Python 2.
(+) * (Jurko) Test & fix Python 2.4 compatibility.
(+) * (Jurko) Fix input/output binding usage.
(+) * Incorrect binding was being used in several places.
(+) * Some of the uses related to processing the SOAP Fault error reporting
(+) element seem to be 'fake', needed only because of a a bit messy
(+) design. Planned to be fixed soon.
(28.03.2013.)
(+) * (Jurko) Add web service reply processing related unit tests.
(+) * (Jurko) Remove undocumented, untested & unused binding.replyfilter
(+) functionality.
(+) * (Jurko) Remove seeming unused SoapClient last_sent() and last_received()
(+) functionality.
(+) * (Jurko) Add a test for unicode Fault data processing.
(+) * (Jurko) Merge SoapClient failed() & succeeded() functions into the same
(+) process_reply() function.
(+) * (Jurko) Make binding classes no longer have anything to do with method
(+) independent Fault element processing.
(+) * (Jurko) Make reply XML processing check the namespace used for Envelope &
(+) Body elements.
(+) * (Jurko) Make SOAP Fault processing check the namespaces used for all
(+) relevant tags.
(+) * (Jurko) Make HTTP status code 200 XML replies containing a Fault element
(+) consistently reported as SOAP faults (plus issue a warning about the
(+) non-standard HTTP status code) both when reporting such faults using
(+) exceptions or by returning a (status, reason) tuple.
(+) * Currently this is done only when reporting them using exceptions.
(+) * (Jurko) Make plugins received() & parsed() calls now process both success
(+) & error replies.
(+) * (Jurko) SOAP fault reports with invalid Fault structure should not cause
(+) suds code to break with an 'invalid attribute' exception.
(+) * (Jurko) SOAP fault reports with no <detail> tag (optional) should not
(+) cause suds code to break with an 'invalid attribute' exception when run
(+) with the suds 'faults' option set to false.
(+) * (Jurko) Clean up message reply processing return codes with suds 'faults'
(+) option set to both true & false.
(+) * (Jurko) Reorganize SimClient injection keywords.
(+) * 'msg' - request message.
(+) * 'reply' - reply message ('msg' must not be set).
(+) * 'status' - HTTP status code acompanying the 'reply' message.
(+) * 'description' - description string acompanying the 'reply' message.
(+) * (Jurko) Check failing tests.
(+) * All tests now pass except for ones related to SOAP Fault unicode
(+) faultstring processing.
(29.03.2013.)
(+) * (Jurko) Sync with external related repositories.
(+) * 'https://bitbucket.org/blarghmatey/suds-blarghmatey'.
(+) * (Jurko) Additional SOAP web service reply tests.
(+) * (Jurko) Fix detected unicode problems.
(+) * Remove invalid WebFault fix merged from an external source.
(+) * All suds exception classes now contain unicode description messages.
(+) * Undo a hasty unicode related WebFault fix merged from an external
(+) source in revision 16b084e8eea6511981d171e63cada98b58720c38.
(+) * Rename smart_str class to byte_str and make it accept only string
(+) parameters.
(+) * Clean Python2/3 compatibility DocumentStore fix.
(+) * Now contains raw data instead of unicode strings.
(+) * This also fixes a problem where unicode data read from the
(+) DocumentStore would fail to be encoded using the default encoding,
(+) which would then get reported as 'document not found'.
(+) * SAX parser now accepts only byte string content instead of also
(+) accepting unicode strings containing latin1 characters only.
(+) * Make tests now specify their fixed wsdl & reply content as byte
(+) strings only.
(+) * Make all tests pass.
(+) * Python 2.4.
(+) * Python 2.7.3.
(+) * Python 3.2.3.
(+) * (Jurko) Remove Python 2/3 unicode encoding compatibility support assuming
(+) that its encoded unicode representations contain only latin1 characters.
(+) * SoapClient 'location' cleanup.
(+) * Should be stored as a unicode object instead of being converted
(+) from its byte representation assuming it was encoded using a
(+) specific encoding, e.g. if read from a WSDL schema, it should be
(+) decoded the same as the rest of the WSDL schema.
(+) * Remove str2bytes() & bytes2str().
(+) * (Jurko) Remove the str_to_utf8_in_py2() Python 2/3 unicode encoding
(+) compatibility support function as it no longer seems to be needed.
(+) * (Jurko) Add tests for web service operation input & output element types.
(30.03.2013.)
(+) * (Jurko) Improve suds tests.
(31.03.2013.)
(+) * (Jurko) Add tests for wrapped suds operation input & output data.
(01.04.2013.)
(+) * (Jurko) Add tests for wrapped suds operation output data.
(+) * (Jurko) Merge patches sent in by Juraj Ivanèiæ from PKE sistemi.
(+) * Add tests for disabled wrapped suds operation input & output data
(+) support.
(+) * Add code for disabling suds library wrapped parameter support.
(02.04.2013.)
(+) * (Jurko) Restriction support cleanup based on patches sent in by Juraj
(+) Ivanèiæ from PKE sistemi.
(+) * Research.
(+) * Not enough time to research this thoroughly and come up with a
(+) complete and well tested solution.
(+) * Prepare and commit related tests.
(+) * Mark the tests as 'expected to fail' & comment the reasons.
(+) * Commit as a separate unfinished private branch.
(+) * (Jurko) Prepare the '0.4.1 jurko 5' release.
(+) * Update release notes.
(08.05.2013.)
(+) * (Jurko) Make suds construct SOAP requests with correct element namespaces
(+) when their XSD schema definition nodes reference other nodes with a
(+) different namespace.
(+) * Research.
(+) * Add test.
(+) * Implement.
(+) * Report back to Jens Arm from KabelDeutschland who reported the issue.
(+) * (Jurko) Support specifying a custom DocumentStore instance for a specific
(+) Client.
(+) * Support.
(+) * Update test code adding documents to the global DocumentStore instance
(+) to use a local one instead.
(+) * Cleanup.
(+) * DocumentStore.open() can return the bytes object directly instead
(+) of having to wrap it inside a BytesIO instance.
(+) * Remove unnecessary Cache functions.
(+) * getf() should be left in the FileCache class only.
(+) * putf() should be removed completely.
(+) * Add tests.
(+) * Separate DocumentStore instances must not share content.
(+) * Not specifying a DocumentStore instance uses the default global
(+) one.
(+) * Default content.
(+) * Updating content.
(+) * Accessing existing content.
(+) * Accessing missing content.
(17.06.2013.)
(+) * (Jurko) Upgrade the setup procedure to use the latest setuptools 0.7.2
(+) release instead of the now deprecated 'distribute' Python package.
(+) * Research.
(+) * Implement.
(18.06.2013.)
(+) * (Jurko) Upgrade the setup procedure to use the latest setuptools 0.7.2
(+) release instead of the now deprecated 'distribute' Python package.
(+) * Add automated setuptools installation (downloaded on-demand from
(+) PyPI).
(+) * Fix issues with installing on Python 2.4.
(+) * Add project installation troubleshooting notes to the main readme.
(+) * (Jurko) See how to allow using the setup script's 'test' option to run the
(+) project's pytest based test suite.
(19.06.2013.)
(+) * (Jurko) Resolve test failures caused by suds generating slightly different
(+) SOAP requests when using Python 3.3.
(+) * Tests should not depend on the order in which XML attributes are
(+) specified for a single XML element where this is not necessary.
(11.11.2013.)
(+) * (Jurko) Prepare the '0.4.1 jurko 5' release.
(+) * Follow the documented release procedure.
(+) * Update release notes.
(+) * Update version information.
(+) * Tag in Hg.
(+) * Upload the source package.
(+) * Project site.
(+) * PyPI.
(18.11.2013.)
(+) * (Jurko) Fix suds time-zone handling according to a pull request received
(+) on bitbucket from MDuggan1.
(+) * Research.
(+) * Suds assumes that all timezones have a full-hour offset from the
(+) UTC timeone and does not work correctly with those that do not.
(+) * This seems to be a suds specific problem and not a more
(+) general Python issue as some information on the net implies.
(+) * FixedOffsetTimezone.
(+) * datetime.tzinfo subclass.
(+) * Used only in test code.
(+) * Represents fixed offset timezones with no daylight saving
(+) time.
(+) * Start morphing the current suds & test code base towards the suggested
(+) patched code.
(19.11.2013.)
(+) * (Jurko) Fix suds time-zone handling according to a pull request received
(+) on bitbucket from MDuggan1.
(+) * Research.
(+) * Prepare date/time string parsing tests.
(20.11.2013.)
(+) * (Jurko) Start documenting the upcoming suds 0.4.1 jurko 6 release.
(+) * (Jurko) Fix suds time-zone handling according to a pull request received
(+) on bitbucket from MDuggan1.
(+) * Research.
(+) * Implement parsing.
(+) * DateTime no longer derived from Date & Time.
(+) * Date constructed from datetime.datetime should hold a datetime.date.
(+) * Research.
(+) * See if sax.date.Date("1900-01-01+02:00") should hold a timezone
(+) aware date object.
(+) * Related test: TestDate.testStringToValue().
(+) * Timezone data.
(+) * See when we need to specify timezone information.
(+) * In tests when we create DateTime/Time objects.
(+) * Default timezone when parsing web service responses.
(+) * YAGNI - for now left to user code reading specific
(+) DateTime/Time objects.
(+) * Default timezone when constructing web service requests.
(+) * YAGNI - for now left to user code creating specific
(+) DateTime/Time objects.
(+) * Implement.
(+) * Contained datetime.DateTime/Time objects should hold their
(+) timezone information.
(+) * Research.
(+) * Test TestDate.testStringToValue_failure() fails on Python 2 but
(+) passed on Python 3.
(+) * Fixed by the latest implementation changes.
(21.11.2013.)
(+) * (Jurko) Fix suds time-zone handling according to a pull request received
(+) on bitbucket from MDuggan1.
(+) * Check for feedback from users requesting this patch.
(+) * Add tests.
(+) * FixedOffsetTimezone class.
(+) * Fix FixedOffsetTimezone.tzname() output string formatting bug with
(+) negative timezone offsets.
(+) * Add tests.
(+) * UtcTimezone class.
(+) * (Jurko) Remove support for timezone specifiers including seconds as such
(+) are not supported by either Python or the XSD data types specification.
(+) * Add/update tests.
(+) * Input like "+10:10:10" should be rejected.
(+) * Timezone offset timedelta objects containing more detailed than
(+) minute information.
(+) * Remove support.
(+) * (Jurko) Add tests making sure timezone indicator strings without a colon
(+) between hours and minutes are not accepted.
(+) * This leads to border cases like "+121" where you do not know whether
(+) this represents "+01:21" or "+12:01".
(22.11.2013.)
(+) * (Jurko) Remove date/time related test code duplication.
(+) * Date, DateTime & Time classes.
(+) * Clean up test function names.
(+) * Test construction from unexpected objects.
(+) * Test construction from datetime.date/datetime/time objects.
(+) * str() tests.
(+) * XDate & Date class.
(+) * XDateTime & DateTime class.
(+) * XTime & Time class.
(+) * Timezone handling checks in XDateTime & XTime classes.
(23.11.2013.)
(+) * (Jurko) Make converting datetime/time to string output subsecond
(+) information without trailing zeroes.
(+) * Test.
(+) * Implement.
(+) * Discard as the implementation complexity seems way too great and the
(+) gain does not seem to reciprocate the cost.
(+) * (Jurko) Update the project's versioning scheme to no longer have pip
(+) detect suds-jurko releases as 'prerelease' only due to our version tag
(+) formatting.
(+) * Accept that the original suds project has died and continue with the
(+) natural version number progression.
(+) * (Jurko) Plan a new release.
(+) * (Jurko) Update used setuptools version.
(+) * (Jurko) Remove unused project files inherited from the original suds
(+) project.
(25.11.2013.)
(+) * (Jurko) Test the project with different Python installations.
(+) * Python 2.4.3/x86, on Windows 7/SP1/x64.
(+) * Install.
(+) * 'setuptools'.
(+) * 'pip'.
(+) * Describe encountered problems in 'HACKING.txt'.
(+) * 'pytest'.
(+) * Describe encountered problems in 'HACKING.txt'.
(+) * Run tests.
(+) * Python 2.4.4/x86, on Windows 7/SP1/x64.
(+) * Install.
(+) * 'setuptools'.
(+) * 'pip'.
(+) * Describe encountered problems in 'HACKING.txt'.
(+) * 'pytest'.
(+) * Describe encountered problems in 'HACKING.txt'.
(+) * Run tests.
(+) * Python 2.7.6/x64, on Windows 7/SP1/x64.
(+) * Install.
(+) * 'setuptools'.
(+) * 'pip'.
(+) * 'pytest'.
(+) * Run tests.
(+) * Python 3.2.5/x64, on Windows 7/SP1/x64.
(+) * Install.
(+) * 'setuptools'.
(+) * 'pip'.
(+) * 'pytest'.
(+) * Run tests.
(+) * Python 3.3.3/x86, on Windows 7/SP1/x64.
(+) * Install.
(+) * 'setuptools'.
(+) * 'pip'.
(+) * 'pytest'.
(+) * Run tests.
(+) * Python 3.3.3/x64, on Windows 7/SP1/x64.
(+) * Install.
(+) * 'setuptools'.
(+) * 'pip'.
(+) * 'pytest'.
(+) * Run tests.
(+) * (Jurko) Document the test environment setup in HACKING.txt.
(+) * (Jurko) Prepare a new suds-jurko 0.5 release.
(28.11.2013.)
(+) * (Jurko) Look into a reported problem with how unicode data gets encoded
(+) inside a suds SOAP request with Python 2. Reported by Alexey Sveshnikov
(+) and mduggan1.
(+) * Get a reproducible use case from Alexey Sveshnikov.
(+) * Research.
(+) * Data in HTTP requests needs to be encoded as defined by the
(+) Content-Type header given in that request (ISO-8859-1 being the
(+) default).
(+) * Suds set the "Content-Type=text/xml; charset=utf-8" HTTP request
(+) header for all of its SOAP requests.
(+) * Python's http module (used internally by the urllib module) add
(+) the given message data to its existing data. Suds gives its
(+) message data to urllib as an utf-8 encoded bytes object. If
(+) existing message data is unicode, it will attempt to forcefully
(+) convert the given message data to unicode assuming all it contains
(+) is ASCII characters.
(+) * Suds message data is already a utf-8 encoded bytes object.
(+) * With Python-3 httplib's previous message data is a bytes and not a
(+) string object.
(+) * The reason why httplib's message content is converted to unicode
(+) is that with Python 2 the initial header is a unicode object
(+) u'POST /service HTTP/1.1' while with Python 3 it is a bytes object
(+) b'POST /service HTTP/1.1'.
(+) * Python 2.
(+) * Affects Python 2.7.
(+) * Does not affect Python 2.4.
(+) * Python 3.
(+) * Its httplib Request object automatically converts the
(+) passed URL to a bytes object (assumes it contains only
(+) ASCII characters) which then prevents all the other
(+) request data from being forcibly converted to unicode.
(29.11.2013.)
(+) * (Jurko) Look into a reported problem with how unicode data gets encoded
(+) inside a suds SOAP request with Python 2. Reported by Alexey Sveshnikov
(+) and mduggan1.
(+) * Reduce the reproducible use case.
(+) * Should not require an external web service.
(+) * Integrate into regular suds-jurko tests.
(+) * Make the reproducible test case not attempt to connect to the network
(+) if the test passes.
(+) * Fix the issue.
(+) * Confirm with Alexey Sveshnikov that it is ok with him to make the
(+) reproducible use case public.
(+) * Close related project pull requests on 'bitbucket.org'.
(+) * (Jurko) Add a test for handling actual non-ASCII unicode service location
(+) data.
(30.11.2013.)
(+) * (Jurko) See if the suds HttpTransport.open() method ever gets called.
(+) * Yup, transport open() methods get called from DocumentReader, e.g.
(+) when downloading a WSDL schema from the net.
(+) * It seems like Transport's open() & send() methods might be megreable,
(+) but that would first require further research. For now - YAGNI.
(+) * (Jurko) Process pull requests received on 'bitbucket.org'.
(+) * Fix setup.py current working folder path comparison so it works with
(+) links in the path. Contributed by ryanpetrello.
(23.12.2013.)
(+) * (Jurko) Prepare a basic development script for running the full suds test
(+) suite using multiple Python interpreter versions.
(26.12.2013.)
(+) * (Jurko) Process patches sent in by Bouke Haarsma on BitBucket.
(+) * Unicode logging issue.
(+) * Research.
(+) * Prepare tests.
(+) * Merge.
(+) * Thorough code review.
(+) * Implement a cleaner fix for both Reply & Request classes.
(+) * Update release notes.
(+) * (Jurko) Fix possible typo in the suds.transport.Request string/unicode
(+) representation where there seems to be a missing space after a colon just
(+) before the URL information.
(+) * (Jurko) Remove unnecessary logger objects.
(+) * (Jurko) Process the project issue #2 reported on BitBucket by Arthur
(+) Clune, related to not being able to set the option cache location if the
(+) default cache location is not a writeable folder.
(+) * Research.
(+) * Prepare tests.
(+) * Default cache.
(+) * Default ObjectCache instance should be created only if no other
(+) cache has been explicitly specified during suds.client.Client()
(+) construction.
(+) * Fix.
(+) * Update release notes.
(+) * Report back & close the project issue on BitBucket.
(21.01.2014.)
(+) * (Jurko) Process patch sent in by Bouke Haarsma on BitBucket to 'make sure
(+) all web service operation parameters are consumed'.
(+) * This patch has been worked on on a separate feature branch for close
(+) to a month now.
(+) * Update todo list.
(+) * Update release notes.
(+) * Commit.
(+) * Push changes to BitBucket.
(23.01.2014.)
(+) * (Jurko) Prepare internal documentation notes folder.
(+) * Add folder & add a descriptive readme.txt file to it.
(+) * Include in the source distribution folder.
(+) * Do not include it in the installation.
(+) * Note the new documentation notes folder in the project's HACKING.rst
(+) documentation.
(24.01.2014.)
(+) * (Jurko) Process Jurko's research & todo notes collected while working on
(+) reporting extra parameter errors.
(+) * (Jurko) Prepare a new suds-jurko 0.6 release.
(+) * Check release notes.
(+) * Test.
(+) * Update version tag.
(+) * Tag in Hg.
(+) * Update version information.
* (Jurko) Prepare a new suds-jurko 0.6 release.
* Retag in Hg
* Package the release.
* Tag next version development.
* Distribute the new release.
* PyPI.
* BitBucket.
* Notify Gauthier Bastien - see comments for commit
9da81de891958292850a242781b30a3493f617 on BitBucket.
(25.01.2014.)
* (Jurko) Process decimal type support patch sent in by pendletongp on
BitBucket.
* Research.
* Prepare tests.
* Merge.
* Thorough code review.
* Update release notes.
* (Jurko) Clean up input argument/parameter & wrapped/unwrapped terminology
usage in code.
* Synchronize all usage both in code and in relevant 'notes/' documents.
* (Jurko) Process Jurko's remaining research & todo notes collected while
working on reporting extra parameter errors. Some are redundant or have
already been dealt with so the list needs to be triaged first.
* Fix non-optional choice element handling - missing values should be
used as empty strings, same as for non-choice parameters - search for
tests xfailed with reason 'non-optional choice handling buggy'.
* Add tests: which type XSD schemas do not get unwrapped automatically,
e.g. simple types such as built-in type restrictions.
* Split up test_request_construction.py tests into parameter definition,
argument parsing & possibly partial binding specific request
construction tests.
* Add test: single parameter pointing to an element - parameter name
should be ignored.
* Add test: single parameter pointing to an element - with unwrapping.
* Add test: single parameter pointing to a type - with unwrapping.
* Add test: single parameter pointing to a built-in type - no
unwrapping.
* Add test: multiple parameters pointing to types & elements.
* Add tests: wsdl tests - XSD schema content.
* Add tests: wsdl tests - recognized operations.
* Add tests: wsdl tests - recognized services.
* Add test: document/literal, document/encoded, rpc/literal &
rpc/encoded should make no difference to input processing in theory
and should all recognize the same input parameter structure.
* Add tests: wsdl tests - recognized binding - input/output - for
different methods - document binding should be the default - see
whether literal should be the default binding style.
* Add test: named sequence/choice/all - there is no such thing - their
name attributes should be ignored.
* Research: consider input parameter elements with missing type
declarations to have the type "xsd:string" or "xsd:any" or something
similar - check the XSD specification.
* '<xsd:element name="MyElement"></xsd:element>' currently used
wrapped.
* '<xsd:element name="MyElement"> </xsd:element>' currently used
unwrapped.
* Add test: unwrapped element reference input parameter.
* Add test: shema_object.resolve() &
shema_object.resolve(nobuiltin=True).
* Add test: explicitly marking an input parameter sequence as optional
should be recognized when unwrapping those input parameters - such
functions should report accepting 0 parameters.
* Add test: expected input argument count reporting with choice input
parameters explicitly marked optional.
* Add test: array parameters.
* Research: whether web service operations taking multiple input
parameter body-parts can have those body-parts simply reference other
elements, thus requiring us to resolve that reference before checking
whether the input parameter is optional (and possibly other places as
well - see Document.mkparam() which does no resolving for such web
service operations but does so for operations taking a single wrapper
input parameter structure).
* Research: see if the parameter type checked whether it is optional
inside Document.bodycontent() needs to have its ancestor elements
checked as well - this might be needed if this can actually be a
reference to some other, more deeply nested element.
* Research: can element references be chained - nope as they are allowed
to reference only top level elements and top level elements are
explicitly not allowed to use the ref attribute.
* Research: can element references be optional by themselves - yes, and
that is the only way they can be marked as optional since they may
only reference top-level elements and those are in turn not allowed to
use the minOccurs/maxOccurs attributes.
* Add test: extra array parameters - more than maxOccurs - possibly not
necessary if we want to allow suds to make such 'illegal' calls.
* Add test: missing regular parameters.
* Add test: missing non-optional choice parameters.
* Add test: missing optional choice parameters.
* Recognize missing optional values when specified as a lists/tuples
containing only values None and other such lists/tuples.
* Error when passed a list/tuple argument containing a list/tuple or
None.
* Research: web service operations taking multiple same-named parameters
- how they are and how they should be handled.
* Choice containing an empty sequence should be recognized as optional.
* Choice(a, sequence(b, c)) should set b to '' if it is not optional and
no value is given for it, but a value is given for c - same if b & c
roles are reversed.
* Research: suds does not seem to know how to handle minOccurs/maxOccurs
attributes specified on sequence & choice XSD schema XML elements - it
definitely does not recognize elements inside an optional choice or
sequence as optional - see how this affects input/output parameter
unwrapping.
* Add test: passing an array element value as an empty list.
* Add test: passing an array element value as a non-empty list.
* Add test: constructing requests with missing optional parameters -
should not be specified in the request.
* Add test: constructing requests with missing non-optional parameters
when the operation also takes some optional parameters - how this is
reported.
* Add test: constructing requests by using positional arguments when the
operation takes first optional input parameters and then non-optional
ones after that - initial positional arguments should be mapped to the
initial optional input parameters.
* Research: constructing requests with missing default parameters - see
whether this should be reported as an error or added to the request as
an empty value.
* Research: self.mkparam() call in Document.bodycontent() may return a
list in which case later setPrefix() method call on the returned
object will raise an AttributeError exception.
* Detecting and reporting multiple input parameter values specified for
a single input parameter choice group (empty choice group, simple
single choice, multiple independent choices, one choice group inside
another, one choice inside another but with additional elements
between them).
* Research: whether specifying an empty list or tuple for a parameter
should be treated the same as None - if so, add tests - possibly []/
(,) really skips the parameter while None gets mapped to an empty
value for non-optional parameters..
* Support for multiple same-named elements in a single input or output
structure - those directly back-to-back with each other can already be
set or accessed as arrays but we could need to support others as well.
* Constructing a request for a web service operation taking a single
empty all/choice/sequence parameter - should be the same as for
operations taking no parameters.
* Constructing requests for web service operations taking multiple
choice parameter groups (as positional and keyword arguments).
* Using a function with multiple choice parameter group values.
* TestExtraParameters.test_function_with_no_parameters() - why does
using WSDL '<xsd:element name="Wrapper" />' not work - seems not to be
recognized as wrapped data but if the XML element has any data (e.g. a
space or a new-line) then it gets recognized correctly - smells like
this could be a bug.
* Web service operation taking multiple input parameter bodyparts.
* None of which is an empty sequence.
* At least one of which is an empty sequence.
* Unrelated issues noticed while working on this.
* Document.document() - returned temporary can be inlined.
* Core.process() - root local variable seems redundant.
* Document.bodycontent() - mkparam() does not seem to be able to
return None but if it does, it might mess up tracking which
argument got used and we should document when it does that.
* Parsing parameter values (interpreting positional & keyword
arguments, mapping them to internal web service operation
parameters, reporting duplicate parameter values, reporting
unrecognized parameters and skipping ignored or None choice item
parameters) should not be binding class specific, i.e. it should
be shared for both document & rpc bindings.
* (Jurko) Clean up the project's basic development script for running the
full suds test suite using multiple Python interpreter versions.
* Reimplement in Python.
* Name better.
* (Jurko) Find a cleaner way to install suds tests. Currently they get
installed into a top-level 'tests' folder and so may cause conflicts with
some other 'tests' package that might exist in the target Python
environment.
* Ideas to consider.
* Placing the 'tests' folder under the 'suds' folder.
* Placing the top level suds folder outside the egg folder (similar
to how this is done for the pytest package), not having the egg
folder added to the Python path and leaving the tests folder
inside the egg folder.
NON PRIORETIZED:
=================================================
* Optionally make suds check that the input parameters passed to its web
service proxy operations actually match their respective WSDL definitions.
* Current suds behaviour.
* Extra parameters are ignored.
* Parameters of invalid type are simply added into the generated
SOAP request as strings and left up to the web service
implementation to deal with and report as an error if the
constructed SOAP request turns out to be invalid.
* Having a local client-side check could make catching client side
programming bugs easier.
* Ideas.
* Make sure given values fit their respective type value domains,
e.g. integers, strings, regular expressions, restrictions, complex
types where a builtin was expected, complex type of an unexpected
structure, etc.
* Extra parameters are reported as errors.
* Missing non-optional parameters are reported as errors.
* Input message part has both element & type specified.
* See how invalid schemas containing a ref-cycle are handled.
* They should be reported as invalid either when dereferencing them
(e.g. to determine an element's target namespace) or when building the
internal schema object tree and should not cause us to go into endless
recursion.
* See how multi-occurrence input parameter elements are supposed to be
supported.
* With automated parameter unwrapping support.
* Without automated parameter unwrapping support.
* Clean up & correct the choice support implementation.
* Choice parameters seem to be supported only for document/literal style
input parameters only.
* Add tests for this.
* Fix.
* See the currently disabled
'xxxtest_choice_parameter_implementation_inconsistencies' unit test
demonstrating a problem with the current implementation.
* SoapClient 'location' cleanup.
* URL quoting, especially if specified externally by the caller instead